{
 "cells": [
  {
   "cell_type": "markdown",
   "source": [
    "参数高效微调"
   ],
   "metadata": {
    "id": "ehLrbLNHrToW"
   }
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "id": "OeloYJUsv7fp",
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "outputId": "a52ab96c-aab2-4e38-a057-af918f6868b4"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Mounted at /content/drive\n"
     ]
    }
   ],
   "source": [
    "from google.colab import drive\n",
    "drive.mount('/content/drive')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "id": "aqMw-VTtxUwy",
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "outputId": "907abf25-b3ae-40b6-ff09-8d12b00e1feb"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "/content/drive/MyDrive\n"
     ]
    }
   ],
   "source": [
    "%cd /content/drive/MyDrive/"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "id": "RhtxobIIxhEj",
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "outputId": "da163124-0ec5-482b-de9b-0d97ae054d97"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "data  README.md\n"
     ]
    }
   ],
   "source": [
    "!ls sst2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "X3N6AcAf0T5c",
    "outputId": "9c47d39e-c19e-4b7b-8036-f525e1853613"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Collecting datasets\n",
      "  Downloading datasets-2.20.0-py3-none-any.whl.metadata (19 kB)\n",
      "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from datasets) (3.15.4)\n",
      "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from datasets) (1.26.4)\n",
      "Collecting pyarrow>=15.0.0 (from datasets)\n",
      "  Downloading pyarrow-17.0.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (3.3 kB)\n",
      "Requirement already satisfied: pyarrow-hotfix in /usr/local/lib/python3.10/dist-packages (from datasets) (0.6)\n",
      "Collecting dill<0.3.9,>=0.3.0 (from datasets)\n",
      "  Downloading dill-0.3.8-py3-none-any.whl.metadata (10 kB)\n",
      "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from datasets) (2.1.4)\n",
      "Requirement already satisfied: requests>=2.32.2 in /usr/local/lib/python3.10/dist-packages (from datasets) (2.32.3)\n",
      "Requirement already satisfied: tqdm>=4.66.3 in /usr/local/lib/python3.10/dist-packages (from datasets) (4.66.5)\n",
      "Collecting xxhash (from datasets)\n",
      "  Downloading xxhash-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (12 kB)\n",
      "Collecting multiprocess (from datasets)\n",
      "  Downloading multiprocess-0.70.16-py310-none-any.whl.metadata (7.2 kB)\n",
      "Collecting fsspec<=2024.5.0,>=2023.1.0 (from fsspec[http]<=2024.5.0,>=2023.1.0->datasets)\n",
      "  Downloading fsspec-2024.5.0-py3-none-any.whl.metadata (11 kB)\n",
      "Requirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from datasets) (3.10.1)\n",
      "Requirement already satisfied: huggingface-hub>=0.21.2 in /usr/local/lib/python3.10/dist-packages (from datasets) (0.23.5)\n",
      "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from datasets) (24.1)\n",
      "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from datasets) (6.0.1)\n",
      "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (2.3.4)\n",
      "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.3.1)\n",
      "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (24.1.0)\n",
      "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.4.1)\n",
      "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (6.0.5)\n",
      "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.9.4)\n",
      "Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (4.0.3)\n",
      "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.21.2->datasets) (4.12.2)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.32.2->datasets) (3.3.2)\n",
      "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.32.2->datasets) (3.7)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.32.2->datasets) (2.0.7)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.32.2->datasets) (2024.7.4)\n",
      "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets) (2.8.2)\n",
      "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets) (2024.1)\n",
      "Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets) (2024.1)\n",
      "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.2->pandas->datasets) (1.16.0)\n",
      "Downloading datasets-2.20.0-py3-none-any.whl (547 kB)\n",
      "\u001B[2K   \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m547.8/547.8 kB\u001B[0m \u001B[31m16.5 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\n",
      "\u001B[?25hDownloading dill-0.3.8-py3-none-any.whl (116 kB)\n",
      "\u001B[2K   \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m116.3/116.3 kB\u001B[0m \u001B[31m11.8 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\n",
      "\u001B[?25hDownloading fsspec-2024.5.0-py3-none-any.whl (316 kB)\n",
      "\u001B[2K   \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m316.1/316.1 kB\u001B[0m \u001B[31m27.9 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\n",
      "\u001B[?25hDownloading pyarrow-17.0.0-cp310-cp310-manylinux_2_28_x86_64.whl (39.9 MB)\n",
      "\u001B[2K   \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m39.9/39.9 MB\u001B[0m \u001B[31m57.2 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\n",
      "\u001B[?25hDownloading multiprocess-0.70.16-py310-none-any.whl (134 kB)\n",
      "\u001B[2K   \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m134.8/134.8 kB\u001B[0m \u001B[31m13.2 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\n",
      "\u001B[?25hDownloading xxhash-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (194 kB)\n",
      "\u001B[2K   \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m194.1/194.1 kB\u001B[0m \u001B[31m17.6 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\n",
      "\u001B[?25hInstalling collected packages: xxhash, pyarrow, fsspec, dill, multiprocess, datasets\n",
      "  Attempting uninstall: pyarrow\n",
      "    Found existing installation: pyarrow 14.0.2\n",
      "    Uninstalling pyarrow-14.0.2:\n",
      "      Successfully uninstalled pyarrow-14.0.2\n",
      "  Attempting uninstall: fsspec\n",
      "    Found existing installation: fsspec 2024.6.1\n",
      "    Uninstalling fsspec-2024.6.1:\n",
      "      Successfully uninstalled fsspec-2024.6.1\n",
      "\u001B[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
      "torch 2.3.1+cu121 requires nvidia-cublas-cu12==12.1.3.1; platform_system == \"Linux\" and platform_machine == \"x86_64\", which is not installed.\n",
      "torch 2.3.1+cu121 requires nvidia-cuda-cupti-cu12==12.1.105; platform_system == \"Linux\" and platform_machine == \"x86_64\", which is not installed.\n",
      "torch 2.3.1+cu121 requires nvidia-cuda-nvrtc-cu12==12.1.105; platform_system == \"Linux\" and platform_machine == \"x86_64\", which is not installed.\n",
      "torch 2.3.1+cu121 requires nvidia-cuda-runtime-cu12==12.1.105; platform_system == \"Linux\" and platform_machine == \"x86_64\", which is not installed.\n",
      "torch 2.3.1+cu121 requires nvidia-cudnn-cu12==8.9.2.26; platform_system == \"Linux\" and platform_machine == \"x86_64\", which is not installed.\n",
      "torch 2.3.1+cu121 requires nvidia-cufft-cu12==11.0.2.54; platform_system == \"Linux\" and platform_machine == \"x86_64\", which is not installed.\n",
      "torch 2.3.1+cu121 requires nvidia-curand-cu12==10.3.2.106; platform_system == \"Linux\" and platform_machine == \"x86_64\", which is not installed.\n",
      "torch 2.3.1+cu121 requires nvidia-cusolver-cu12==11.4.5.107; platform_system == \"Linux\" and platform_machine == \"x86_64\", which is not installed.\n",
      "torch 2.3.1+cu121 requires nvidia-cusparse-cu12==12.1.0.106; platform_system == \"Linux\" and platform_machine == \"x86_64\", which is not installed.\n",
      "torch 2.3.1+cu121 requires nvidia-nccl-cu12==2.20.5; platform_system == \"Linux\" and platform_machine == \"x86_64\", which is not installed.\n",
      "torch 2.3.1+cu121 requires nvidia-nvtx-cu12==12.1.105; platform_system == \"Linux\" and platform_machine == \"x86_64\", which is not installed.\n",
      "cudf-cu12 24.4.1 requires pyarrow<15.0.0a0,>=14.0.1, but you have pyarrow 17.0.0 which is incompatible.\n",
      "gcsfs 2024.6.1 requires fsspec==2024.6.1, but you have fsspec 2024.5.0 which is incompatible.\n",
      "ibis-framework 8.0.0 requires pyarrow<16,>=2, but you have pyarrow 17.0.0 which is incompatible.\u001B[0m\u001B[31m\n",
      "\u001B[0mSuccessfully installed datasets-2.20.0 dill-0.3.8 fsspec-2024.5.0 multiprocess-0.70.16 pyarrow-17.0.0 xxhash-3.4.1\n"
     ]
    }
   ],
   "source": [
    "!pip install datasets==2.20.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "id": "0oxkIr87vBqP"
   },
   "outputs": [],
   "source": [
    "from datasets import load_dataset\n",
    "from transformers import AutoTokenizer, AutoConfig, AutoModel, get_cosine_schedule_with_warmup\n",
    "\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "from torch.utils.data import DataLoader\n",
    "import numpy as np\n",
    "from tqdm.auto import tqdm\n",
    "\n",
    "# 固定seed\n",
    "torch.manual_seed(42)\n",
    "# 确定设备：如果有GPU可用则使用GPU，否则使用CPU\n",
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "#如果GPU可以，可以改为20\n",
    "num_epochs = 5\n",
    "patience = 5\n",
    "\n",
    "training_record = {}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "h79S1K__vBqR"
   },
   "source": [
    "## preparation"
   ]
  },
  {
   "cell_type": "markdown",
   "source": [
    "SST-2（Stanford Sentiment Treebank）是斯坦福大学发布的一个用于情感分析的数据集，旨在对句子的情感进行分类。该数据集中包含电影评论句子，每个句子都带有相应的情感标签。情感标签分为两类：正面（positive）和负面（negative），因此 SST-2 是一个二分类任务的数据集。\n",
    "\n",
    "Positive（正面）：\n",
    "\n",
    "\"The movie was absolutely fantastic.\"（这部电影绝对太棒了。）\n",
    "\"I loved the acting and the storyline.\"（我喜欢演技和故事情节。）\n",
    "\n",
    "Negative（负面）：\n",
    "\n",
    "\"The film was a complete disaster.\"（这部电影完全是个灾难。）\n",
    "\"The acting was terrible, I wouldn't recommend it.\"（演技糟糕，我不推荐这部电影。）"
   ],
   "metadata": {
    "id": "H-rDGRn0pOaZ"
   }
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "KGYqrQrMvBqT"
   },
   "source": [
    "### load dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "id": "dojwvamGvBqT",
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 333,
     "referenced_widgets": [
      "6da923bc22354063867b686e5e9de1ce",
      "47f4ea93c4924d85b06f0fcf21820dcb",
      "39a9fabaf3954f0dadfb397d60099fa7",
      "4853ac2b586a48fea2c6cb4de96f8b3f",
      "62e8939f402e4b1184913820e8e01fb8",
      "b8f2918237d74cf2b6af203f582316cb",
      "fa3452f710a84553acce2638fc5229bc",
      "5db1c249922c4ec790067cf28f1b7573",
      "8364cc2f0ebe4ada809102dfe6aaac43",
      "94201c8ea5d34c7493fdf8ac42c99e72",
      "77d65fdb5ae04a0fa4b8c20026816d4d",
      "c4e7491bd5f242369159f6c05b6124c9",
      "e57a75af9eae4a1faec75cb165e66ce7",
      "e72cd88241e54b659b9b112bb7267157",
      "995e40ac781f48fd97758028ab1d0fa2",
      "4ed85ab9fcbe42f29039fe21f0d9582a",
      "42d3e412f0024ec686dfe527564a9e2b",
      "65f322fb9416408786581fe1617054bd",
      "c3ccef57950940e8aa5677a2c5384704",
      "8859695d75c2480699d0b52decb11494",
      "7305a2cdf0c54c62b02d43c1eb1e0187",
      "29527d3cd5654d0d8ca7fc2ff295ca00",
      "977648f8658d404e92a58a8d5eb8d3c2",
      "8ec1844c67c14ec4850d4d0f16fffe97",
      "73adea0657fd471eb404bd8e6454ff0f",
      "b718ee0e74fd410eb47d83df060b24ca",
      "23d321c1013c4f639a4dd3319c30f1cf",
      "70d435bcab094594b06594e46f092e13",
      "de30962c71ea4f9b80c84b10d0f1205d",
      "e595453f5a83499bb3e4fbcf1a2d3452",
      "a2a877d3974c4fcab1a0fad5c7516c06",
      "2cc5bce3467c4befa3feac44e1cdcb00",
      "fa95e6b376d3453fbc7e2f054a32d2ea",
      "92a7065c68d2435798841b50c4d17153",
      "b9db58a2a9914b9485db674fb93b2ded",
      "c862fe426cca4ba3a8c13f40f5c0f6b8",
      "ef0583f2d2464f12b3d21c677a5265f6",
      "69f1014e5e794d6c957a9f48e53d7ed3",
      "9acbb5228e224cd8b9b2b3dd9253d353",
      "5938da630d5b44038a687096d5d082c7",
      "68fc0bfa9d7241bc9695bceb556bb23f",
      "e46ab6f1b04d452c85a5e530a3dda9d1",
      "0c2c57ac0c014e56b9582ab5e0a8914c",
      "7b78622f148443579f4f7d1984f0b056",
      "07b75399a9a04928a42c39eae90179ab",
      "ecf7b9954d5942e39fc20fff9556d242",
      "b1766273dcbb4617887e2ccb12a35ceb",
      "9d5a56bee0ed4be484cb5013cd359892",
      "411e77b79a2e4382b90132dd6d6cfe86",
      "89ae9b1d099c4beb912fa9d10f646a93",
      "50dd8b101f4643e98b637eeadf15c3d0",
      "9808250c9b09421984b43bc54fedce94",
      "43f72df864cf433bb154d8a0acda9b51",
      "644dc9763b224d998d402ecde8718641",
      "cfc4e7802f31421ba0e1e33af16ac966",
      "0a0ee09287334452acc462dc5b481091",
      "7efd96d2b1ad4c7a9fc8f4c69b180d93",
      "ec7e6fdba61343788788035a7838e92f",
      "5200c8edfd7b4f598570d9de39075b80",
      "11ae8f29fe80400d9f1887a933873d44",
      "a236f0c825674f20a3cdf5c1563786bd",
      "d4462044ac8440ee8c5c9fa1b1479da1",
      "6478946a2d534aeea49eade2c84a0d67",
      "d8ea5b62a240416394ece8cfe02625d0",
      "3a47763fb9c04498b3b772329df0f734",
      "6b8d2a2ec8b04d7bb0df960ced634029"
     ]
    },
    "outputId": "2a693c83-cbb6-4cd7-c757-010f4839b2aa"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stderr",
     "text": [
      "/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_token.py:89: UserWarning: \n",
      "The secret `HF_TOKEN` does not exist in your Colab secrets.\n",
      "To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.\n",
      "You will be able to reuse this secret in all of your notebooks.\n",
      "Please note that authentication is recommended but still optional to access public models or datasets.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "tokenizer_config.json:   0%|          | 0.00/48.0 [00:00<?, ?B/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "6da923bc22354063867b686e5e9de1ce"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "config.json:   0%|          | 0.00/570 [00:00<?, ?B/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "c4e7491bd5f242369159f6c05b6124c9"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "vocab.txt:   0%|          | 0.00/232k [00:00<?, ?B/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "977648f8658d404e92a58a8d5eb8d3c2"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "tokenizer.json:   0%|          | 0.00/466k [00:00<?, ?B/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "92a7065c68d2435798841b50c4d17153"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "Generating train split: 0 examples [00:00, ? examples/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "07b75399a9a04928a42c39eae90179ab"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "Generating validation split: 0 examples [00:00, ? examples/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "0a0ee09287334452acc462dc5b481091"
      }
     },
     "metadata": {}
    }
   ],
   "source": [
    "# tokenizer，加载bert的分词器\n",
    "tokenizer = AutoTokenizer.from_pretrained(\"bert-base-uncased\")\n",
    "\n",
    "# dataset\n",
    "dataset_sst2 = load_dataset(\n",
    "    \"parquet\",\n",
    "    data_files={\n",
    "        \"train\": \"./sst2/data/train-00000-of-00001.parquet\",\n",
    "        \"validation\": \"./sst2/data/validation-00000-of-00001.parquet\"\n",
    "        })\n",
    "\n",
    "# preprocessing\n",
    "def collate_fn(batch):\n",
    "    #对字符串文本，进行编码，变为id\n",
    "    inputs = tokenizer([x[\"sentence\"] for x in batch], padding=\"longest\", truncation=True, return_tensors=\"pt\", max_length=512)\n",
    "    labels = torch.tensor([x[\"label\"] for x in batch])\n",
    "    return inputs, labels\n",
    "\n",
    "train_loader = DataLoader(dataset_sst2[\"train\"], batch_size=32, shuffle=True, collate_fn=collate_fn)\n",
    "val_loader = DataLoader(dataset_sst2[\"validation\"], batch_size=32, collate_fn=collate_fn)\n"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "# 遍历 DataLoader 中的一个批次示例\n",
    "# for batch in train_loader:\n",
    "#     print(batch)\n",
    "#     break"
   ],
   "metadata": {
    "id": "Kn_zv4hImexo",
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "outputId": "54b1627e-f947-4fa4-9a78-c0af63572928"
   },
   "execution_count": 8,
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "({'input_ids': tensor([[ 101, 2062, 8669,  ...,    0,    0,    0],\n",
      "        [ 101, 2009, 1005,  ...,    0,    0,    0],\n",
      "        [ 101, 2003, 1037,  ..., 5541, 2143,  102],\n",
      "        ...,\n",
      "        [ 101, 2980,  102,  ...,    0,    0,    0],\n",
      "        [ 101, 2032, 2000,  ...,    0,    0,    0],\n",
      "        [ 101, 2008, 2573,  ...,    0,    0,    0]]), 'token_type_ids': tensor([[0, 0, 0,  ..., 0, 0, 0],\n",
      "        [0, 0, 0,  ..., 0, 0, 0],\n",
      "        [0, 0, 0,  ..., 0, 0, 0],\n",
      "        ...,\n",
      "        [0, 0, 0,  ..., 0, 0, 0],\n",
      "        [0, 0, 0,  ..., 0, 0, 0],\n",
      "        [0, 0, 0,  ..., 0, 0, 0]]), 'attention_mask': tensor([[1, 1, 1,  ..., 0, 0, 0],\n",
      "        [1, 1, 1,  ..., 0, 0, 0],\n",
      "        [1, 1, 1,  ..., 1, 1, 1],\n",
      "        ...,\n",
      "        [1, 1, 1,  ..., 0, 0, 0],\n",
      "        [1, 1, 1,  ..., 0, 0, 0],\n",
      "        [1, 1, 1,  ..., 0, 0, 0]])}, tensor([1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0,\n",
      "        0, 0, 0, 0, 0, 1, 0, 1]))\n"
     ]
    }
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "kR8TcgzNvBqU"
   },
   "source": [
    "### define evaluattion and training function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "id": "MC8lVzZZvBqU"
   },
   "outputs": [],
   "source": [
    "def evaluate(model, val_loader):\n",
    "    model.eval()\n",
    "    val_loss = 0\n",
    "    val_acc = 0\n",
    "    with torch.no_grad():# 在评估过程中关闭梯度计算\n",
    "        total_samples = 0\n",
    "        for inputs, labels in val_loader:\n",
    "            inputs = {k: v.to(device) for k, v in inputs.items()} #输入是一个字典，所以拿value\n",
    "            labels = labels.to(device)\n",
    "            probs = model(**inputs)\n",
    "            loss = F.binary_cross_entropy(probs, labels.float())\n",
    "            val_loss += loss.item()\n",
    "            val_acc += ((probs > 0.5) == labels).sum().item() #模型的预测结果与实际标签是否相等,求和得到预测正确数量\n",
    "            total_samples += len(labels)\n",
    "\n",
    "    val_loss /= len(val_loader)\n",
    "    val_acc /= total_samples\n",
    "    return val_loss, val_acc\n",
    "\n",
    "\n",
    "def train(model, train_loader, val_loader, device, num_epochs=3, patience=3):\n",
    "    # 将模型移动到指定设备\n",
    "    model.to(device)\n",
    "\n",
    "    # 定义优化器\n",
    "    optimizer = torch.optim.AdamW(model.parameters(), lr=1e-5)\n",
    "\n",
    "    # 计算训练步数总数\n",
    "    total_steps = num_epochs * len(train_loader)\n",
    "\n",
    "    # 使用transformers库中的余弦学习率调度器进行学习率调整\n",
    "    scheduler = get_cosine_schedule_with_warmup(\n",
    "        optimizer,\n",
    "        num_warmup_steps=int(0.2 * total_steps), #前20%步，学习率提升\n",
    "        num_training_steps=total_steps\n",
    "    )\n",
    "\n",
    "    # 提前停止训练的控制变量\n",
    "    best_val_acc = -1\n",
    "    cur = 0\n",
    "\n",
    "    # 存储训练和验证指标的容器\n",
    "    history = {\"train_loss\": [], \"train_acc\": [], \"val_loss\": [], \"val_acc\": []}\n",
    "\n",
    "    for epoch in range(num_epochs):\n",
    "        # 进入训练模式\n",
    "        model.train()\n",
    "        train_loss = 0\n",
    "        train_acc = 0\n",
    "        total_samples = 0\n",
    "\n",
    "        # 对训练数据进行迭代\n",
    "        for inputs, labels in tqdm(train_loader):\n",
    "            # 将数据移动到指定设备\n",
    "            inputs = {k: v.to(device) for k, v in inputs.items()}\n",
    "            labels = labels.to(device)\n",
    "\n",
    "            # 前向传播并计算损失\n",
    "            optimizer.zero_grad()\n",
    "            probs = model(**inputs)\n",
    "            loss = F.binary_cross_entropy(probs, labels.float())\n",
    "            loss.backward()\n",
    "            optimizer.step()\n",
    "            scheduler.step()\n",
    "\n",
    "            # 收集指标\n",
    "            train_loss += loss.item()\n",
    "            train_acc += ((probs > 0.5) == labels).sum().item()\n",
    "            total_samples += len(labels)\n",
    "\n",
    "        train_loss /= len(train_loader)\n",
    "        train_acc  /= total_samples\n",
    "\n",
    "        # 进行验证\n",
    "        val_loss, val_acc = evaluate(model, val_loader)\n",
    "\n",
    "        # 记录指标\n",
    "        print(f\"epoch {epoch}: train_loss {train_loss:.4f}, train_acc {train_acc:.4f}, val_loss {val_loss:.4f}, val_acc {val_acc:.4f}\")\n",
    "        history[\"train_loss\"].append(train_loss)\n",
    "        history[\"train_acc\"].append(train_acc)\n",
    "        history[\"val_loss\"].append(val_loss)\n",
    "        history[\"val_acc\"].append(val_acc)\n",
    "\n",
    "        # 提前停止训练\n",
    "        if val_acc > best_val_acc:\n",
    "            best_val_acc = val_acc\n",
    "            cur = 0\n",
    "        else:\n",
    "            cur += 1\n",
    "        if cur >= patience:\n",
    "            print(\"提前停止训练\")\n",
    "            break\n",
    "\n",
    "    return history"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "GVaBjl-zvBqU"
   },
   "source": [
    "### a function to check the parameters that could be fintuned"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "id": "jio4CGkJvBqV"
   },
   "outputs": [],
   "source": [
    "def human_readable_count(n):\n",
    "    # 定义一个函数，用于处理可读性较好的数字格式\n",
    "    if n < 1_000:\n",
    "        return f\"{n}\"\n",
    "    elif n < 1_000_000:\n",
    "        return f\"{n/1_000:.2f}K\"  # 如果在千到百万之间，使用K表示\n",
    "    elif n < 1_000_000_000:\n",
    "        return f\"{n/1_000_000:.2f}M\"  # 如果在百万到十亿之间，使用M表示\n",
    "    else:\n",
    "        return f\"{n/1_000_000_000:.2f}B\"  # 如果大于十亿，使用B表示\n",
    "\n",
    "\n",
    "def count_parameters(model):\n",
    "    # 统计模型参数\n",
    "    total_params = sum(p.numel() for p in model.parameters())  # 总参数数量\n",
    "    trainable_params = sum(p.numel() for p in model.parameters() if p.requires_grad)  # 可训练参数数量\n",
    "    frozen_params = total_params - trainable_params  # 冻结参数数量\n",
    "\n",
    "    # 输出参数数量\n",
    "    print(f\"Total Parameters:\\t{human_readable_count(total_params):>8}\")  # 输出总参数数量（格式化为可读性更好的格式）\n",
    "    print(f\"Frozen Parameters:\\t{human_readable_count(frozen_params):>8}\")  # 输出冻结参数数量（格式化为可读性更好的格式）\n",
    "    print(f\"Trainable Parameters:\\t{human_readable_count(trainable_params):>8}\\t{trainable_params / total_params:.2%}\")  # 输出可训练参数数量以及所占比例"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "import matplotlib.pyplot as plt  # 导入绘图库\n",
    "\n",
    "def plot_training_record(training_record, metric_name=\"val_acc\"):\n",
    "    \"\"\"\n",
    "    绘制训练记录图表\n",
    "\n",
    "    参数:\n",
    "    training_record(dict): 包含训练记录的字典，键为方法名称，值为记录的字典\n",
    "    metric_name(str): 要绘制的度量名称，默认为\"val_acc\"（验证准确度）\n",
    "\n",
    "    返回:\n",
    "    无（直接展示图表）\n",
    "    \"\"\"\n",
    "    plt.figure(figsize=(12, 6))  # 设置图表大小\n",
    "    for method_name, record in training_record.items():  # 遍历每个方法的记录\n",
    "        metrics = record[metric_name]  # 获取指定度量的数值\n",
    "        plt.plot(range(len(metrics)), metrics, label=method_name)  # 绘制折线图\n",
    "\n",
    "    plt.xlabel(\"Epoch\")  # 设置X轴标签\n",
    "    plt.ylabel(\"Validation Accuracy\")  # 设置Y轴标签\n",
    "    plt.legend()  # 显示图例\n",
    "    plt.grid()  # 显示网格线\n",
    "    plt.show()  # 展示图表"
   ],
   "metadata": {
    "id": "NFjQBYDem1FK"
   },
   "execution_count": 11,
   "outputs": []
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "yMxv01fMvBqV"
   },
   "source": [
    "## A Frozen pretrained Bert as a feature extractor  将预训练过的Bert冻结作为特征提取器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "Q-_6NfDPvBqV",
    "outputId": "1660f3b8-19c9-4d53-8927-9eacf6edf949"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "FrozenBert(\n",
      "  (model): BertModel(\n",
      "    (embeddings): BertEmbeddings(\n",
      "      (word_embeddings): Embedding(30522, 768, padding_idx=0)\n",
      "      (position_embeddings): Embedding(512, 768)\n",
      "      (token_type_embeddings): Embedding(2, 768)\n",
      "      (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "      (dropout): Dropout(p=0.1, inplace=False)\n",
      "    )\n",
      "    (encoder): BertEncoder(\n",
      "      (layer): ModuleList(\n",
      "        (0-11): 12 x BertLayer(\n",
      "          (attention): BertAttention(\n",
      "            (self): BertSdpaSelfAttention(\n",
      "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (dropout): Dropout(p=0.1, inplace=False)\n",
      "            )\n",
      "            (output): BertSelfOutput(\n",
      "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "              (dropout): Dropout(p=0.1, inplace=False)\n",
      "            )\n",
      "          )\n",
      "          (intermediate): BertIntermediate(\n",
      "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
      "            (intermediate_act_fn): GELUActivation()\n",
      "          )\n",
      "          (output): BertOutput(\n",
      "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
      "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "            (dropout): Dropout(p=0.1, inplace=False)\n",
      "          )\n",
      "        )\n",
      "      )\n",
      "    )\n",
      "    (pooler): BertPooler(\n",
      "      (dense): Linear(in_features=768, out_features=768, bias=True)\n",
      "      (activation): Tanh()\n",
      "    )\n",
      "  )\n",
      "  (classifier): Linear(in_features=768, out_features=1, bias=True)\n",
      ")\n",
      "Total Parameters:\t 109.48M\n",
      "Frozen Parameters:\t 109.48M\n",
      "Trainable Parameters:\t     769\t0.00%\n"
     ]
    }
   ],
   "source": [
    "# https://huggingface.co/docs/transformers/model_doc/bert 官网帮助\n",
    "# 定义一个继承自 nn.Module 的 FrozenBert 类\n",
    "class FrozenBert(nn.Module):\n",
    "    def __init__(self):\n",
    "      super().__init__()\n",
    "      # 加载预训练的BERT模型（不区分大小写的版本）\n",
    "      self.model = AutoModel.from_pretrained(\"bert-base-uncased\")\n",
    "\n",
    "      # 添加一个线性分类器，其输入尺寸是BERT模型的隐藏层尺寸，输出是1\n",
    "      self.classifier = nn.Linear(self.model.config.hidden_size, 1)\n",
    "\n",
    "      # 冻结BERT模型的所有参数，这样在训练过程中它们不会被更新\n",
    "      for param in self.model.parameters():\n",
    "          param.requires_grad = False\n",
    "\n",
    "    # 定义前向传播过程\n",
    "    def forward(self, **inputs):\n",
    "      # 获取BERT的最后一个隐藏层的输出，并选中序列的第一项（[CLS] token）\n",
    "      feature = self.model(**inputs).last_hidden_state[:, 0, :]\n",
    "      # 将特征通过线性分类器获取对数几率\n",
    "      logits = self.classifier(feature)\n",
    "      # 应用sigmoid激活函数并将结果集中成一维输出\n",
    "      return torch.sigmoid(logits).squeeze()\n",
    "\n",
    "\n",
    "# 实例化FrozenBert类，创建一个模型对象\n",
    "frozen_bert = FrozenBert()\n",
    "print(frozen_bert)\n",
    "# for name, param in frozen_bert.named_parameters(): # 打印模型参数\n",
    "#   print(name, param.shape)\n",
    "# 定义一个函数（此函数未在代码中提供），用来计算模型的参数数量\n",
    "count_parameters(frozen_bert)\n",
    "\n",
    "# training_record一个训练记录字典，来记录不同训练阶段的信息，在最上面进行的初始化\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "# 调用train函数来训练模型，传递模型对象、训练数据加载器、验证数据加载器、\n",
    "# 使用设备、训练迭代次数和早停耐心值（这些变量在代码中没有定义）\n",
    "training_record[\"Frozen\"] = train(frozen_bert, train_loader, val_loader, device, num_epochs=num_epochs, patience=patience)"
   ],
   "metadata": {
    "id": "VFOBbWPgsp8t",
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 264,
     "referenced_widgets": [
      "1af5a8f7087f4cadac8c4742448cb754",
      "4924af90b4f849a29324a796d3ad5e26",
      "56ef56c89b824c089d5d6a95edd8053c",
      "24e24adc878143cbada3b3642323cd49",
      "73d346a51bbe4607b7bad1f00e9e8e9d",
      "dcc091b28c9042dc8f61521d3d5d7645",
      "2c244f94f9c74a9da7705f2ec06e3a8e",
      "354ab5429c694eb98041f97bcef7acae",
      "3333e11e07734fe185ebc48f107d9358",
      "a5fc28f738a74b78a7144c2be0f0d43e",
      "da07dd9b33fc4c169b632783a4d278e9",
      "b9a956cfa97143338af8a9b80bbcc293",
      "b2fde8db6cb4482bac9a0adb5d7d5098",
      "db000bf338804d2a85b1e1b94e2d0302",
      "9f3cbfb091114c4d812492c869e023f7",
      "2798ca6e18ad489b9566154f0e92eb55",
      "95e687351f934ce8b7ec7137e8e41627",
      "0964d6448ae047ba93713a50b045ee62",
      "0aa540f38c0d450ab7e97e950876dfef",
      "e8aebc853ad3437db99de7988ac5f957",
      "b10bdb047e08422f817574433e430848",
      "d1288c69593c457c9a3957f7d081a5e1",
      "2c057dbf62dd4a72ac815abf0bd969f8",
      "3bb4f188e63945eeb7dcd70775ee824e",
      "0b2238fa6d6141c2812d89059aa81aee",
      "aa5d88fe9f194a648634e711b0481f16",
      "c3db3db035f94ba2b65905af78fbce0c",
      "ead5313927894891b1380ec64bf934ad",
      "478db626e41745e5927b6f457f7a3c33",
      "8f69d9b17e19409ab7270b3479ec5959",
      "3d7f31d3f93e472780c93e694a120009",
      "d4db3d008f5343d396faad6b5347a156",
      "9f48c04f7f64470eb075d65dc8504069",
      "13ec8c09ad43477faeb0fdb48be77e4f",
      "89a0bba9b10b4a269552e4ab03854f6d",
      "221b230283d546288628c41c773f111d",
      "facb5fd3e31c4e219ce3a560abc71e4f",
      "7cddc8d69d744212954f756a6fc8f6b3",
      "2e72e0d4d8c04f0c95f87f8d270374ca",
      "b4c266cc96254ba4bd4ae9382456d312",
      "494478349bb6477cb17faed29a6c5a09",
      "08f279faff004eba8d01ba37b2ee07f3",
      "28a0c952f92f4a7ba1a1e5d39155e877",
      "75162cb3d3064c1084ef555f3ec39fed",
      "aec52c56d30446af966dceab7f242436",
      "aaff9125f0234b7f8c46e55c1c035fda",
      "b42ac81f0d064e0aa20129730ca12793",
      "c4433855b2f4416e9086e8a1ab19be8a",
      "a81ca5b63f2a40969482b26cf29f78b6",
      "0cdaad7dd2da4df1991bbfbdda4df8e5",
      "00baf8cd88b34a8c869741ed46e3449a",
      "bad9f83e099b43aab34ec8d38dc41620",
      "7c7fd113b3304f91ac29694b28be04b2",
      "e0fe620f3fd043afbeadcfe05ba38074",
      "556217324a9d4e07abdda702b46db30d"
     ]
    },
    "outputId": "f8939a37-67e2-4eae-9e75-5968381de820"
   },
   "execution_count": 17,
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "1af5a8f7087f4cadac8c4742448cb754"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "epoch 0: train_loss 0.6738, train_acc 0.5696, val_loss 0.6695, val_acc 0.5665\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "b9a956cfa97143338af8a9b80bbcc293"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "epoch 1: train_loss 0.6462, train_acc 0.6129, val_loss 0.6408, val_acc 0.6170\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "2c057dbf62dd4a72ac815abf0bd969f8"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "epoch 2: train_loss 0.6217, train_acc 0.6678, val_loss 0.6222, val_acc 0.6628\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "13ec8c09ad43477faeb0fdb48be77e4f"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "epoch 3: train_loss 0.6086, train_acc 0.6969, val_loss 0.6144, val_acc 0.6789\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "aec52c56d30446af966dceab7f242436"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "epoch 4: train_loss 0.6039, train_acc 0.7058, val_loss 0.6132, val_acc 0.6823\n"
     ]
    }
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "# last_hidden_state[:, -1, :]的效果\n",
    "# training_record\n"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "DmOOTkb-4RdM",
    "outputId": "867ef46f-40aa-43c7-cb2c-bd79054d6c3f"
   },
   "execution_count": 18,
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "{'Frozen': {'train_loss': [0.6738307816115807,\n",
       "   0.6462273105589624,\n",
       "   0.6217483102850563,\n",
       "   0.6086444152222676,\n",
       "   0.6039178449580902],\n",
       "  'train_acc': [0.5696446866323183,\n",
       "   0.6129266952738719,\n",
       "   0.6678050156646721,\n",
       "   0.6969220032962627,\n",
       "   0.705801125480705],\n",
       "  'val_loss': [0.6695329759802137,\n",
       "   0.6408152154513768,\n",
       "   0.6221567094326019,\n",
       "   0.6144171953201294,\n",
       "   0.613168750490461],\n",
       "  'val_acc': [0.5665137614678899,\n",
       "   0.6169724770642202,\n",
       "   0.6628440366972477,\n",
       "   0.6788990825688074,\n",
       "   0.6823394495412844]}}"
      ]
     },
     "metadata": {},
     "execution_count": 18
    }
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "# last_hidden_state[:, -1, :]的效果\n",
    "# training_record\n"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "outputId": "867ef46f-40aa-43c7-cb2c-bd79054d6c3f",
    "id": "n3oeXBTQ_7TV"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "{'Frozen': {'train_loss': [0.6738307816115807,\n",
       "   0.6462273105589624,\n",
       "   0.6217483102850563,\n",
       "   0.6086444152222676,\n",
       "   0.6039178449580902],\n",
       "  'train_acc': [0.5696446866323183,\n",
       "   0.6129266952738719,\n",
       "   0.6678050156646721,\n",
       "   0.6969220032962627,\n",
       "   0.705801125480705],\n",
       "  'val_loss': [0.6695329759802137,\n",
       "   0.6408152154513768,\n",
       "   0.6221567094326019,\n",
       "   0.6144171953201294,\n",
       "   0.613168750490461],\n",
       "  'val_acc': [0.5665137614678899,\n",
       "   0.6169724770642202,\n",
       "   0.6628440366972477,\n",
       "   0.6788990825688074,\n",
       "   0.6823394495412844]}}"
      ]
     },
     "metadata": {},
     "execution_count": 18
    }
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "# last_hidden_state[:, -1, :]的效果\n",
    "# training_record\n",
    "# {'Frozen': {'train_loss': [0.6738307816115807,\n",
    "#    0.6462273105589624,\n",
    "#    0.6217483102850563,\n",
    "#    0.6086444152222676,\n",
    "#    0.6039178449580902],\n",
    "#   'train_acc': [0.5696446866323183,\n",
    "#    0.6129266952738719,\n",
    "#    0.6678050156646721,\n",
    "#    0.6969220032962627,\n",
    "#    0.705801125480705],\n",
    "#   'val_loss': [0.6695329759802137,\n",
    "#    0.6408152154513768,\n",
    "#    0.6221567094326019,\n",
    "#    0.6144171953201294,\n",
    "#    0.613168750490461],\n",
    "#   'val_acc': [0.5665137614678899,\n",
    "#    0.6169724770642202,\n",
    "#    0.6628440366972477,\n",
    "#    0.6788990825688074,\n",
    "#    0.6823394495412844]}}\n",
    "\n"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "outputId": "867ef46f-40aa-43c7-cb2c-bd79054d6c3f",
    "id": "ynRwL6nf_8Kz"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "{'Frozen': {'train_loss': [0.6738307816115807,\n",
       "   0.6462273105589624,\n",
       "   0.6217483102850563,\n",
       "   0.6086444152222676,\n",
       "   0.6039178449580902],\n",
       "  'train_acc': [0.5696446866323183,\n",
       "   0.6129266952738719,\n",
       "   0.6678050156646721,\n",
       "   0.6969220032962627,\n",
       "   0.705801125480705],\n",
       "  'val_loss': [0.6695329759802137,\n",
       "   0.6408152154513768,\n",
       "   0.6221567094326019,\n",
       "   0.6144171953201294,\n",
       "   0.613168750490461],\n",
       "  'val_acc': [0.5665137614678899,\n",
       "   0.6169724770642202,\n",
       "   0.6628440366972477,\n",
       "   0.6788990825688074,\n",
       "   0.6823394495412844]}}"
      ]
     },
     "metadata": {},
     "execution_count": 18
    }
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "training_record"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "MWidlSxO4Mjh",
    "outputId": "15132300-a843-4c23-dd3f-50baf89a8a52"
   },
   "execution_count": 15,
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "{'Frozen': {'train_loss': [0.6774013442834595,\n",
       "   0.6435645660142151,\n",
       "   0.6140088986614255,\n",
       "   0.598374310057973,\n",
       "   0.5936110704358569],\n",
       "  'train_acc': [0.5715600825550491,\n",
       "   0.6253396486956005,\n",
       "   0.7043163224398283,\n",
       "   0.7345766084128941,\n",
       "   0.7469450177433964],\n",
       "  'val_loss': [0.672339413847242,\n",
       "   0.623795707310949,\n",
       "   0.5940487469945636,\n",
       "   0.5816210742507663,\n",
       "   0.5797192475625447],\n",
       "  'val_acc': [0.5206422018348624,\n",
       "   0.6571100917431193,\n",
       "   0.7626146788990825,\n",
       "   0.786697247706422,\n",
       "   0.7924311926605505]}}"
      ]
     },
     "metadata": {},
     "execution_count": 15
    }
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "plot_training_record(training_record, metric_name=\"val_acc\")"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 542
    },
    "id": "i1BNLiyknAVD",
    "outputId": "569fdcb8-3c39-4e37-83df-7c093c6eea8c"
   },
   "execution_count": 14,
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ],
      "image/png": "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krF8+fLz7sNnk/lK0yc+m3xDzZo1jX//+98lPsd7yTdcqEe8j8yVmZlpNG/e3EhKSjJ69epljBs37rz7VoX3EyPyPio/P19r1qxR7969Pdvsdrt69+6tlStXlnjMypUri+wvSf369Tvv/rh4ZemTJGVlZalhw4aKj4//3d/sovLxXrKWTp06KS4uTn369NH3339vdjl+5cSJE5KkWrVqnXcf3k/mK02fJD6bzORyubRgwQJlZ2erR48eJe7De8lcpemRxPvITGPHjtX1119f7H1SkqrwfiLI+6gjR47I5XIpJiamyPaYmJjzXv+Zmprq1f64eGXpU8uWLTVnzhx99tlneuedd+R2u3X55Zdr//79lVEySuF876WMjAydPHnSpKpwrri4OM2aNUsfffSRPvroI8XHx+vqq6/W2rVrzS7NL7jdbj300EPq2bOn2rVrd979+GwyV2n7xGeTOTZt2qRq1aopODhY9913nz755BO1adOmxH15L5nDmx7xPjLPggULtHbtWk2ZMqVU+1eF91OA2QUA/qZHjx5FfpN7+eWXq3Xr1vrnP/+pSZMmmVgZYC0tW7ZUy5YtPY8vv/xy7dy5U9OmTdN//vMfEyvzD2PHjtXmzZv13XffmV0KLqC0feKzyRwtW7bU+vXrdeLECX344Ye66667tHz58vMGRVQ+b3rE+8gc+/bt07hx45SUlORXiwsS5H1UVFSUHA6H0tLSimxPS0tTbGxsicfExsZ6tT8uXln6dK7AwEB17txZO3bsqIgSUQbney9FRkYqNDTUpKpQGt26dSNYVoKEhAT997//1bfffqv69etfcF8+m8zjTZ/OxWdT5QgKClKzZs0kSV27dtWPP/6oV155Rf/85z+L7ct7yRze9OhcvI8qx5o1a3T48GF16dLFs83lcunbb7/V66+/rry8PDkcjiLHVIX3E1PrfVRQUJC6du2q5ORkzza3263k5OTzXpfTo0ePIvtLUlJS0gWv48HFKUufzuVyubRp0ybFxcVVVJnwEu8l61q/fj3vpQpkGIYSEhL0ySef6Ouvv1bjxo1/9xjeT5WvLH06F59N5nC73crLyyvxOd5LvuFCPToX76PKce2112rTpk1av3695+uSSy7RsGHDtH79+mIhXqoi7yezV9vD+S1YsMAIDg425s2bZ/zyyy/G6NGjjRo1ahipqamGYRjG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\n"
     },
     "metadata": {}
    }
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "3I7dKw-4vBqV"
   },
   "source": [
    "## Fully Finetuning"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 998,
     "referenced_widgets": [
      "842c28163e874dceb9bbce33d6cf05cd",
      "04da1acb748e4e16882d37fa1251bf46",
      "9edc27fb5af74c329806a4956ade9cfe",
      "14852b1db6d54f758fb6e69a5811dbfa",
      "3012756f808948c6a518cf12f12498d5",
      "c2614263799849acb00a052c67d45e70",
      "436d2f7998ac489b81f905e934898f79",
      "b72eaa2b67bf4ef4a3503562d060ac81",
      "da82514d01c344309e15262b01122039",
      "f6047660fd0e4a0a97ae9e94338bcc27",
      "f4a354f58725406ab46f82c82662ceca",
      "3f1507b47b7348efa16cd5ab1534f7a5",
      "8155d2eeb7db4cde9cacf98236961458",
      "d4db1865ed894d7294f60c2c46efbecc",
      "3c6b0ab616604b38b8adb133a0030aee",
      "743a6d5dffe544c587b798655bf2ea3e",
      "ee798c1c1f3344c4878419f558d6fb22",
      "6e97ea60559d461aa2ccd0d3b9eba680",
      "da2e6c783d2a4888ac1e02391073b445",
      "c3d789d1eb744705a339d071491bfeeb",
      "32e8ae12e296418da3ec13fe5032e761",
      "09c192f3ace34058afbe3336206b5045",
      "402678946c5d456083782e2ca36d42a1",
      "0c0e10c48d414fbc8a5de4e509a38edb",
      "be0c28446ced44e79c226aa6361d40ad",
      "ddc27da96ee0403fb1262374bb683f2f",
      "cd6b99ecd7fd4ca4a196d6b0ce96a7f1",
      "a448a864cc5147609738b9df5c715838",
      "6eff4cee814245f582c387abc6f26981",
      "1f63a35495074a7bbadcdc2ad2411461",
      "86d27e67d82a453cac4a14ce4bc77c84",
      "2b1fce4a57b445fda6eb341a16deaf54",
      "f5586592671d49af8f502c3a286892b6"
     ]
    },
    "id": "EkxJD6fevBqW",
    "outputId": "0f1655ba-3fb3-429c-edc2-34ee2fc9eb4e"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "--------------------------------------------------\n",
      "FullyFinetunedBert(\n",
      "  (model): BertModel(\n",
      "    (embeddings): BertEmbeddings(\n",
      "      (word_embeddings): Embedding(30522, 768, padding_idx=0)\n",
      "      (position_embeddings): Embedding(512, 768)\n",
      "      (token_type_embeddings): Embedding(2, 768)\n",
      "      (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "      (dropout): Dropout(p=0.1, inplace=False)\n",
      "    )\n",
      "    (encoder): BertEncoder(\n",
      "      (layer): ModuleList(\n",
      "        (0-11): 12 x BertLayer(\n",
      "          (attention): BertAttention(\n",
      "            (self): BertSdpaSelfAttention(\n",
      "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (dropout): Dropout(p=0.1, inplace=False)\n",
      "            )\n",
      "            (output): BertSelfOutput(\n",
      "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "              (dropout): Dropout(p=0.1, inplace=False)\n",
      "            )\n",
      "          )\n",
      "          (intermediate): BertIntermediate(\n",
      "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
      "            (intermediate_act_fn): GELUActivation()\n",
      "          )\n",
      "          (output): BertOutput(\n",
      "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
      "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "            (dropout): Dropout(p=0.1, inplace=False)\n",
      "          )\n",
      "        )\n",
      "      )\n",
      "    )\n",
      "    (pooler): BertPooler(\n",
      "      (dense): Linear(in_features=768, out_features=768, bias=True)\n",
      "      (activation): Tanh()\n",
      "    )\n",
      "  )\n",
      "  (classifier): Linear(in_features=768, out_features=1, bias=True)\n",
      ")\n",
      "--------------------------------------------------\n",
      "Total Parameters:\t 109.48M\n",
      "Frozen Parameters:\t       0\n",
      "Trainable Parameters:\t 109.48M\t100.00%\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "842c28163e874dceb9bbce33d6cf05cd"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "epoch 0: train_loss 0.3075, train_acc 0.8587, val_loss 0.2341, val_acc 0.9071\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "3f1507b47b7348efa16cd5ab1534f7a5"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "epoch 1: train_loss 0.1459, train_acc 0.9479, val_loss 0.2202, val_acc 0.9151\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "402678946c5d456083782e2ca36d42a1"
      }
     },
     "metadata": {}
    }
   ],
   "source": [
    "class FullyFinetunedBert(nn.Module):\n",
    "    def __init__(self):\n",
    "        super().__init__()\n",
    "        self.model = AutoModel.from_pretrained(\"bert-base-uncased\")  # 从预训练模型加载BERT\n",
    "        self.classifier = nn.Linear(self.model.config.hidden_size, 1)  # 添加线性分类器，输出维度为1\n",
    "\n",
    "    def forward(self, **inputs):\n",
    "        feature = self.model(**inputs).last_hidden_state[:, 0, :]  # 获取特征向量\n",
    "        logits = self.classifier(feature)  # 应用分类器\n",
    "        return torch.sigmoid(logits).squeeze()  # 使用sigmoid激活函数并压缩维度\n",
    "\n",
    "\n",
    "# 加载预训练模型\n",
    "fully_fine_tuned_bert = FullyFinetunedBert()\n",
    "print('-'*50)\n",
    "print(fully_fine_tuned_bert)\n",
    "print('-'*50)\n",
    "# 检查参数数量\n",
    "count_parameters(fully_fine_tuned_bert)\n",
    "\n",
    "# 训练\n",
    "training_record[\"Fully Fine-Tuning\"] = train(\n",
    "    fully_fine_tuned_bert,\n",
    "    train_loader,\n",
    "    val_loader,\n",
    "    device,\n",
    "    num_epochs=num_epochs,\n",
    "    patience=patience\n",
    "    )  # 对完全微调的BERT进行训练，并将训练记录保存在training_record中"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "VCr0b-iFvBqW"
   },
   "outputs": [],
   "source": [
    "del fully_fine_tuned_bert"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "#可以看到全量微调的效果非常好\n",
    "plot_training_record(training_record, metric_name=\"val_acc\")"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 542
    },
    "id": "rNTAbv3jnDe6",
    "outputId": "3f337b2b-8bff-43a2-d4f1-9759ae7fd714"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ],
      "image/png": "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d1RcXOy+ffToUfXp00e33HJLue2GDRumxYsXu28HBQWdU30AAAAAAP/jchlyuFxyOA05SlxyOF0qdpbeLjnj+5NFxdqf5+tqa5fXQb5du3a1WsC8efM0ceJETZgwQZK0YMECffjhh1q0aJGmTZtWafsWLVqUu71s2TKFhoZWCvJBQUGKiYmp1VoBAAAAoKEyDENOlyGH0zgVgk99lZy+XVLxPqdLxSVGudsOp1Hu++KSau5zutwhvOx2yRnbFZ9Rw5m3S5yGSlxGjZ9b2zCbfleHf3f1zesg/+CDD6pz58568MEHy42/8MILSktL0/z582t8rOLiYm3dulXTp093j1mtVg0ePFgbN26s0TEWLlyo0aNHKywsrNz4unXrFBUVpebNm+uaa67RU089pZYtW3o8RlFRkYqKity3c3JyJEkOh0MOh6PGz6e+ldXmzzWCPpkFffJ/9Mgc6JM50Cf/R4/MoSZ9crlOBdeyP88MsiVnhmJDJWfMLheX27b0zxLXmaHYqByOXUa5UFzx/uJTM9We7yv93sysFslus576sijw1J8BNouaGvl+/3rypj6LYRhedSsuLk7vv/+++vXrV278q6++0g033KADBw7U+FiHDh1SXFycNmzYoMTERPf4lClTtH79em3atKna/VNTUzVw4EBt2rRJCQkJ7vGyWfoOHTpoz549euyxxxQeHq6NGzfKZrNVOs6sWbM0e/bsSuOvv/66QkNDa/x8AAAAANQtw5BchlRiSM6yL9fp2yWu0+MlLssZ36vS9yWn9i0dt5S7XVLhuOXHLR72l8f9XbL4+q/svNgshmwWKcAi2awq932ApfR26bhR5TbWSvsY5fYPsHrapuz70se3VbgvoMLj2E49jpkVFBTotttu04kTJxQREVHttl7PyB89etTjZ8lHREToyJEj3h7uvCxcuFC9evUqF+IlafTo0e7ve/Xqpd69e6tTp05at26drr322krHmT59upKTk923c3JyFB8fr6FDh571L9CXHA6H1qxZoyFDhshut/u6HFSBPpkDffJ/9Mgc6JM50Cf/V989Kps1Lq4wU1viqjxrXPkUaQ8zze5TpD1tX/5xSirsX6mGBjZrbLNaSmeJreVnjd0zyQGl3wdYy+7zfL/dZpXdail//xn3BZ7xGKX3nfl4p8cDrBbZA6wV6jh9n8Vi8nQs8/yfV3Zm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fj5a4B7v3aapxiS01fV9Wis8iP/2AQAAzI7f6ADAxFwuQ5+lHdHSTelauyNTJS5DktQkKEC/vqh09v3CuKY+rhIAAAC1yerrAl588UW1b99ewcHBGjhwoFJTU6vd/vjx47r//vsVGxuroKAgde3aVStWrHDfP2vWLFkslnJf3bt3r+unAQD1KuNEof6esltX/PUTjVuUqpXfZ6jEZejits30zG96a9Mfr9VTI3sR4gEAABogn87IL1++XMnJyVqwYIEGDhyo+fPnKykpSbt27VJUVFSl7YuLizVkyBBFRUXprbfeUlxcnH7++Wc1a9as3HYXXHCB1q5d674dEMCJBwDMr8Tp0vofs7U0NV0f78zSqcl3NQ2x68aL4jQmoa26xTTxbZEAAACocz5NuPPmzdPEiRM1YcIESdKCBQv04YcfatGiRZo2bVql7RctWqRjx45pw4YNsttLV1lu3759pe0CAgIUExNTp7UDQH05ePyklm/erzc271dGTqF7PKFDC41JiNfwC2MVbLf5sEIAAADUJ58F+eLiYm3dulXTp093j1mtVg0ePFgbN270uM/777+vxMRE3X///frvf/+ryMhI3XbbbZo6dapsttO/xO7evVutW7dWcHCwEhMTNXfuXLVt27bKWoqKilRUVOS+nZOTI0lyOBxyOBzn+1TrTFlt/lwj6JNZ+FufHE6XPtmVrTe2HNSnaUdknJp9bx5q100XtdYt/dqoU2TYqa1dcjhcPqu1vvhbj+AZfTIH+uT/6JE50CdzMEufvKnPYhhlvx7Wr0OHDikuLk4bNmxQYmKie3zKlClav369Nm3aVGmf7t2766efftLtt9+u++67T2lpabrvvvv04IMPaubMmZKkjz76SHl5eerWrZsOHz6s2bNn6+DBg/ruu+/UpInnU05nzZql2bNnVxp//fXXFRoaWkvPGADO7kihtDHLqtQsi3Icpz8ermtTlxKjDPVuYSjA56ubAAAAoLYVFBTotttu04kTJxQREVHttqYK8l27dlVhYaH27dvnnoGfN2+ennnmGR0+fNjj4xw/flzt2rXTvHnz9Nvf/tbjNp5m5OPj43XkyJGz/gX6ksPh0Jo1azRkyBD3pQbwP/TJHHzZp+ISl9buyNLyrQe0Yc8x93ir8EDdfFGcbukXp3YteVOR15I50CdzoE/+jx6ZA30yB7P0KScn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eaxnxowZGjVqlH788cc6e+z27dt7fOyyr/Hjx5/3Y7zzzjuaM2fO+RdbDzi1vgH46Wi+nk3Zw0r0AAAAQAMzbNgwLV68uNxYZGSkj6optWvXLkVEnF5vKzw8XCEhIQoJqbtFtDdv3iyns3TNrw0bNujmm28uV0dtPHaLFi3O+xj1hRl5EzuaV6S39lk1/PkNWrE9w70S/bpHr9KUYd0J8QAAAIAnhiEV59fOl6PAu+0Nw6tSg4KCFBMTU+7LZrNp/PjxGjlyZLltH3roIV111VU1Ou5dd92lX/3qV+XGHA6HoqKitHDhwmr3jYqKKldPeHh4pVPrZ82apb59++rVV19V+/bt1bRpU40ePVq5ubnubVwul+bOnasOHTooJCREffr00VtvveXxMSMjI92PVxa4y+pYuXKl2rVrV2779957TxbL6TOS//znP+viiy+uth5PlyI8/fTTuuuuu9SkSRO1bdtW//znP8s9zoYNG9S3b18FBwerf//+7sfdtm1btX+H54sZeZMqcbp044JNOnzCKslgJXoAAACgphwF0tOtz/swVknNvN3psUNSYNh5P/b5uvvuu3XllVfq8OHDio2NlSR98MEHKigo0KhRo2rlMfbs2aP33ntPH3zwgX755Rfdeuut+vOf/6w//elPkqS5c+fqtdde04IFC9SlSxd9+umnuuOOOxQZGalBgwbVSg3e1OPJ3/72N82ZM0ePPfaY3nrrLd17770aNGiQunXrppycHF1//fUaMWKEXn/9df3888/1do09M/ImFWCz6vaEeMWHGXplQj8tnpBAiAcAAAAamA8++EDh4eHur1tuuaVWjnvppZeqW7duevXVV91jixcv1i233KLw8PBq923Tpk25mo4ePepxO5fLpSVLlujCCy/UFVdcoTvvvFMpKSmSpKKiIj399NNatGiRkpKS1LFjR40fP1533HGH/vGPf9TKc/SmnqqMGDFC9913nzp37qypU6eqVatW+uSTTyRJr7/+uiwWi/71r3+pZ8+eGj58uB599NE6qb0iZuRN7K7L2ikud4cSO7b0dSkAAACAedhDS2fGz5PL5VJObq4imjSR1VrDOVJ7qFePcfXVV+ull15y3w4Lq73Z/Lvvvlv//Oc/NWXKFGVmZuqjjz7Sxx9/fNb9PvvsMzVp0sR9u3nz5h63a9++fbntYmNjlZWVJUlK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/vGPStvyWvINb3pUEa+j+rF161ZlZWXp4osvdo85nU59+umneuGFF1RUVCSbzVZun4bweuLUej8VGBiofv36KSUlxT3mcrmUkpJS5XU5iYmJ5baXpDVr1lR7HQ/Oz7n0qSKn06nt27crNja2rsqEl3gtmde2bdt4LdUhwzA0adIkvfvuu/r444/VoUOHs+7D66n+nUufKuJnk2+4XC4VFRV5vI/Xkn+orkcV8TqqH9dee622b9+ubdu2ub/69++v22+/Xdu2basU4qUG8nry9Wp7qNqyZcuMoKAgY8mSJcYPP/xg3HPPPUazZs2MjIwMwzAM48477zSmTZvm3v6LL74wAgICjP/5n/8xduzYYcycOdOw2+3G9u3bffUUGgVv+zR79mxj1apVxp49e4ytW7cao0ePNoKDg43vv//eV0+hwcvNzTW+/vpr4+uvvzYkGfPmzTO+/vpr4+effzYMwzCmTZtm3Hnnne7t9+7da4SGhhqPPvqosWPHDuPFF180bDabsXLlSl89hUbB2z49++yzxnvvvWfs3r3b2L59uzF58mTDarUaa9eu9dVTaPDuvfdeo2nTpsa6deuMw4cPu78KCgrc2/CzyffOpU/8bKp/06ZNM9avX2/s27fP+Pbbb41p06YZFovFWL16tWEYvJb8gbc94nXkPyquWt8QX08EeT/397//3Wjbtq0RGBhoJCQkGF9++aX7vkGDBhnjxo0rt/0bb7xhdO3a1QgMDDQuuOAC48MPP6znihsnb/r00EMPubeNjo42RowYYXz11Vc+qLrxKPuYsopfZX0ZN26cMWjQoEr79O3b1wgMDDQ6duxoLF68uN7rbmy87dNf/vIXo1OnTkZwcLDRokUL46qrrjI+/vhj3xTfSHjqj6Ryrw9+NvneufSJn03176677jLatWtnBAYGGpGRkca1117rDoiGwWvJH3jbI15H/qNikG+IryeLYRhG/c3/AwAAAACA88E18gAAAAAAmAhBHgAAAAAAEyHIAwAAAABgIgR5AAAAAABMhCAPAAAAAICJEOQBAAAAADARgjwAAAAAACZCkAcAAD5nsVj03nvv+boMAABMgSAPAEAjN378eFkslkpfw4YN83VpAADAgwBfFwAAAHxv2LBhWrx4cbmxoKAgH1UDAACqw4w8AABQUFCQYmJiyn01b95cUulp7y+99JKGDx+ukJAQdezYUW+99Va5/bdv365rrrlGISEhatmype655x7l5eWV22bRokW64IILFBQUpNjYWE2aNKnc/UeOHNGNN96o0NBQdenSRe+//37dPmkAAEyKIA8AAM7q8ccf180336xvvvlGt99+u0aPHq0dO3ZIkvLz85WUlKTmzZtr8+bNevPNN7V27dpyQf2ll17S/fffr3vuuUfbt2/X+++/r86dO5d7jNmzZ+vWW2/Vt99+qxEjRuj222/XsWPH6vV5AgBgBhbDMAxfFwEAAHxn/Pjxeu211xQcHFxu/LHHHtNjjz0mi8Wi3//+93rppZfc911yySW6+OKL9b//+7/617/+palTp2r//v0KCwuTJK1YsULXX3+9Dh06pOjoaMXFxWnChAl66qmnPNZgsVg0Y8YMzZkzR1LpmwPh4eH66KOPuFYfAIAKuEYeAADo6quvLhfUJalFixbu7xMTE8vdl5iYqG3btkmSduzYoT59+rhDvCRddtllcrlc2rVrlywWiw4dOqRrr7222hp69+7t/j4sLEwRERHKyso616cEAECDRZAHAAAKCwurdKp7bQkJCanRdna7vdxti8Uil8tVFyUBAGBqXCMPAADO6ssvv6x0u0ePHpKkHj166JtvvlF+fr77/i+++EJWq1XdunVTkyZN1L59e6WkpNRrzQAANFTMyAMAABUVFSkjI6PcWEBAgFq1aiVJevPNN9W/f39dfvnl+s9//qPU1FQtXLhQknT77bdr5syZGjdunGbNmqXs7Gw98MADuvPOOxUdHS1JmjVrln7/+98rKipKw4cPV25urr744gs98MAD9ftEAQBoAAjyAABAK1euVGxsbLmxbt26aefOnZJKV5RftmyZ7rvvPsXGxmrp0qXq2bOnJCk0NFSrVq3S5MmTNWDAAIWGhurmm2/WvHnz3McaN26cCgsL9eyzz+qRRx5Rq1at9Jvf/Kb+niAAAA0Iq9YDAIBqWSwWvfvuuxo5cqSvSwEAAOIaeQAAAAAATIUgDwAAAACAiXCNPAAAqBZX4QEA4F+YkQcAAAAAwEQI8gAAAAAAmAhBHgAAAAAAEyHIAwAAAABgIgR5AAAAAABMhCAPAAAAAICJEOQBAAAAADARgjwAAAAAACZCkAcAAAAAwET+Hx7vnK6XbjNJAAAAAElFTkSuQmCC\n"
     },
     "metadata": {}
    }
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "zyPOJDExvBqW"
   },
   "source": [
    "## BitFit\n",
    "\n",
    "BitFit（论文：BitFit: Simple Parameter-efficient Fine-tuning or Transformer-based Masked Language-models）是一种稀疏的微调方法，它训练时只更新bias的参数或者部分bias参数。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "Uw3OoIuxvBqW",
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000,
     "referenced_widgets": [
      "2ea3df86d901466badcf106af54c26cc",
      "3a5969939eb24d1c8dacc658435807dd",
      "38d2fd0601594ad08b8f02ec207106e3",
      "d3d5bf6a77434bddb98b9c05509934f0",
      "8f6c27d3983a47faa7005e3bbb5a48c8",
      "ee5d44cf35b54e70821ef5918ecfdba9",
      "75e8270f78654a4b95cb548a74f44a44",
      "3b59e30fe001415191a1e3deefd8b981",
      "85d7a753ab6346bc9de29421f01f6bbc",
      "c6a1d35b88684fabb03a014c1c745f71",
      "8523ddf108e348cca09798fc435e928a",
      "12f02e7e7ea546eba7414033ee095c24",
      "1757c80f149c440085028d99adf23df9",
      "11ac12d5c114424fbffe250ad866a52a",
      "11e56ef7c22646f5a432b9e75922a2d7",
      "6120ecf5c27d44e7bb622821a2972c44",
      "33c631a6ee50451ab75a5ff32ae4d993",
      "c9003d2c5f304483ace04debfc178b36",
      "a6c89c30639b49c1805b8ee229e71738",
      "cf11655a92864b7e9d30677f0ca92088",
      "00c518b55e064b4e94643a1259333527",
      "13a23ec4bcc24d51ad323dfe149e74b1",
      "353ea85514ce461299259715fde60c97",
      "e31ffde7d2e4416ab2f1d9417471e8e3",
      "e8addc30194841acb66ce8222b9f1715",
      "61ee154730324aaca4b26a14578c28b4",
      "9e5fb56a67ce43f9afeb8d54abecedb3",
      "1189c4638b3240fbbd56a6b21aa91323",
      "15430f52ebcb43a0b0d4eb5c7aa57afa",
      "396aec71e9a94ab89249814b38851be6",
      "2e7bbc6d2bb845e5a312e0e11a8d6821",
      "a9f9f2f8d103427bb56738e9b643b44f",
      "c305cb7e524a4936acb0cd10f5d400a9",
      "f5e43a044fa74c47bd26c120f9b712f3",
      "a4d153922771402ca7234ff8411113ce",
      "70e1de590e8444a187f81b92f19b1d90",
      "e6840f7da5824ba29646e2e27d45dbb1",
      "5d126435cbe04c259e25d4d2752f3358",
      "362df91457d348109b87ea1932731c0e",
      "93d8045c6bb3419faa2f4dfc2cc23e46",
      "59da5456dc0547ac81e715895eb12b68",
      "15e31c705c704ea58155ed4448fd2d67",
      "4a88e605478744d2ac044a349b8aa096",
      "6427ca38a8f14f8bb8169b30b1dc69cd",
      "bf210ddb040842a586b6305dd04a13ab",
      "ab14da846d6a4cecb59d97151ae8d319",
      "299e7e2e48a543a097ff022757af4319",
      "6c7ae1c0823c498f9cc192a72fc9e443",
      "4cad88bdc5dc4d08917d0c3cf339a028",
      "9e61a9c9aa4b47fe968f8efefa25713d",
      "1ce5943ed7754a34b2fb3d9e875179b8",
      "b90d3e6d68cb4f47b0c6b1bef5e1ad47",
      "55586b59d3e647ae908958c9d9fd25dc",
      "ea02d54e0b954af5b8bb6c56ef3bd503",
      "a421bf030d3b40e5b70418ef223ad97a"
     ]
    },
    "outputId": "84555a32-3d83-449d-8d05-d36499365469"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "--------------------------------------------------\n",
      "BitFitBert(\n",
      "  (model): BertModel(\n",
      "    (embeddings): BertEmbeddings(\n",
      "      (word_embeddings): Embedding(30522, 768, padding_idx=0)\n",
      "      (position_embeddings): Embedding(512, 768)\n",
      "      (token_type_embeddings): Embedding(2, 768)\n",
      "      (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "      (dropout): Dropout(p=0.1, inplace=False)\n",
      "    )\n",
      "    (encoder): BertEncoder(\n",
      "      (layer): ModuleList(\n",
      "        (0-11): 12 x BertLayer(\n",
      "          (attention): BertAttention(\n",
      "            (self): BertSelfAttention(\n",
      "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (dropout): Dropout(p=0.1, inplace=False)\n",
      "            )\n",
      "            (output): BertSelfOutput(\n",
      "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "              (dropout): Dropout(p=0.1, inplace=False)\n",
      "            )\n",
      "          )\n",
      "          (intermediate): BertIntermediate(\n",
      "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
      "            (intermediate_act_fn): GELUActivation()\n",
      "          )\n",
      "          (output): BertOutput(\n",
      "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
      "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "            (dropout): Dropout(p=0.1, inplace=False)\n",
      "          )\n",
      "        )\n",
      "      )\n",
      "    )\n",
      "    (pooler): BertPooler(\n",
      "      (dense): Linear(in_features=768, out_features=768, bias=True)\n",
      "      (activation): Tanh()\n",
      "    )\n",
      "  )\n",
      "  (classifier): Linear(in_features=768, out_features=1, bias=True)\n",
      ")\n",
      "--------------------------------------------------\n",
      "Total Parameters:\t 109.48M\n",
      "Frozen Parameters:\t 109.38M\n",
      "Trainable Parameters:\t 103.68K\t0.09%\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "2ea3df86d901466badcf106af54c26cc"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "epoch 0: train_loss 0.6701, train_acc 0.5907, val_loss 0.5584, val_acc 0.8005\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "12f02e7e7ea546eba7414033ee095c24"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "epoch 1: train_loss 0.3889, train_acc 0.8491, val_loss 0.3387, val_acc 0.8624\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "353ea85514ce461299259715fde60c97"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "epoch 2: train_loss 0.3303, train_acc 0.8629, val_loss 0.3214, val_acc 0.8624\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "f5e43a044fa74c47bd26c120f9b712f3"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "epoch 3: train_loss 0.3216, train_acc 0.8669, val_loss 0.3179, val_acc 0.8704\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "bf210ddb040842a586b6305dd04a13ab"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "epoch 4: train_loss 0.3176, train_acc 0.8679, val_loss 0.3161, val_acc 0.8681\n"
     ]
    }
   ],
   "source": [
    "class BitFitBert(nn.Module):\n",
    "    def __init__(self):\n",
    "        super().__init__()\n",
    "        # 加载预训练模型\n",
    "        self.model = AutoModel.from_pretrained(\"bert-base-uncased\")\n",
    "        self.classifier = nn.Linear(self.model.config.hidden_size, 1)\n",
    "\n",
    "        # 冻结除所有偏置项之外的参数\n",
    "        for name, param in self.model.named_parameters():\n",
    "            if \"bias\" not in name:\n",
    "                param.requires_grad = False\n",
    "\n",
    "    def forward(self, **inputs):\n",
    "        feature = self.model(**inputs).last_hidden_state[:, 0, :]  # 获取特征向量\n",
    "        logits = self.classifier(feature)  # 应用分类器\n",
    "        return torch.sigmoid(logits).squeeze()  # 使用sigmoid激活函数并压缩维度\n",
    "\n",
    "\n",
    "# 加载预训练模型\n",
    "bitfit_bert = BitFitBert()\n",
    "print('-'*50)\n",
    "print(bitfit_bert)\n",
    "print('-'*50)\n",
    "# 检查参数数量\n",
    "count_parameters(bitfit_bert)\n",
    "\n",
    "# 训练\n",
    "training_record[\"BitFit\"] = train(bitfit_bert, train_loader, val_loader, device, num_epochs=num_epochs, patience=patience)  # 对BitFitBert进行训练，并将训练记录保存在training_record中"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "ZJI09vdKvBqX"
   },
   "outputs": [],
   "source": [
    "del bitfit_bert"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "#偏置项冻结后效果变差了一些\n",
    "plot_training_record(training_record, metric_name=\"val_acc\")"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 542
    },
    "id": "xT7kfW1XnE9b",
    "outputId": "2526da12-f0a6-4484-bf61-a1a13308acf7"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ],
      "image/png": "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\n"
     },
     "metadata": {}
    }
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "G6KrBSXsvBqX"
   },
   "source": [
    "## P-Tuning & P-Tuning v2 & Prefix Tuning\n",
    "\n",
    "Prefix Tuning（论文：Prefix-Tuning: Optimizing Continuous Prompts for Generation），在输入token之前构造一段任务相关的virtual tokens作为Prefix，然后训练的时候只更新Prefix部分的参数，而PLM中的其他部分参数固定。\n",
    "\n",
    "* 针对不同的模型结构，需要构造不同的Prefix。\n",
    "    * 针对自回归架构模型：在句子前面添加前缀，得到 z = [PREFIX; x; y]，合适的上文能够在固定 LM 的情况下去引导生成下文（比如：GPT3的上下文学习）。\n",
    "    * 针对编码器-解码器架构模型：Encoder和Decoder都增加了前缀，得到 z = [PREFIX; x; PREFIX0; y]。Encoder端增加前缀是为了引导输入部分的编码，Decoder 端增加前缀是为了引导后续token的生成。\n",
    "\n",
    "\n",
    "P-Tuning（论文：GPT Understands, Too），该方法将Prompt转换为可以学习的Embedding层，并用MLP+LSTM的方式来对Prompt Embedding进行一层处理。\n",
    "\n",
    "相比Prefix Tuning，P-Tuning加入的可微的virtual token，但仅限于输入层，没有在每一层都加；另外，virtual token的位置也不一定是前缀，插入的位置是可选的。这里的出发点实际是把传统人工设计模版中的真实token替换成可微的virtual token。\n",
    "\n",
    "P-Tuning v2（论文： P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks），该方法在每一层都加入了Prompts tokens作为输入，而不是仅仅加在输入层，这带来两个方面的好处：\n",
    "\n",
    "更多可学习的参数（从P-tuning和Prompt Tuning的0.01%增加到0.1%-3%），同时也足够参数高效。\n",
    "加入到更深层结构中的Prompt能给模型预测带来更直接的影响。\n",
    "\n",
    "\n",
    "自然语言生成 (NLG) 和 自然语言理解 (NLU)\n",
    "### 区别\n",
    "\n",
    "|方法|参数重整化| 微调参数所在层 | 适配下游任务 |\n",
    "|-|-|-|-|\n",
    "|P-tuning|MLP + LSTM 或者 MLP| embedding 层| 使得GPT做NLU |\n",
    "|P-tuning v2|不使用| 每一层 | NLG & NLU |\n",
    "|prefix tuning|MLP| 每一层 | NLG |"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "xVlDiAfavBqX",
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "outputId": "3c575d7b-e1a0-41c3-ebb4-bbd988ac3ceb"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "--------------------------------------------------\n",
      "PTuningBert(\n",
      "  (model): BertModel(\n",
      "    (embeddings): BertEmbeddings(\n",
      "      (word_embeddings): Embedding(30522, 768, padding_idx=0)\n",
      "      (position_embeddings): Embedding(512, 768)\n",
      "      (token_type_embeddings): Embedding(2, 768)\n",
      "      (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "      (dropout): Dropout(p=0.1, inplace=False)\n",
      "    )\n",
      "    (encoder): BertEncoder(\n",
      "      (layer): ModuleList(\n",
      "        (0-11): 12 x BertLayer(\n",
      "          (attention): BertAttention(\n",
      "            (self): BertSelfAttention(\n",
      "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (dropout): Dropout(p=0.1, inplace=False)\n",
      "            )\n",
      "            (output): BertSelfOutput(\n",
      "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "              (dropout): Dropout(p=0.1, inplace=False)\n",
      "            )\n",
      "          )\n",
      "          (intermediate): BertIntermediate(\n",
      "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
      "            (intermediate_act_fn): GELUActivation()\n",
      "          )\n",
      "          (output): BertOutput(\n",
      "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
      "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "            (dropout): Dropout(p=0.1, inplace=False)\n",
      "          )\n",
      "        )\n",
      "      )\n",
      "    )\n",
      "    (pooler): BertPooler(\n",
      "      (dense): Linear(in_features=768, out_features=768, bias=True)\n",
      "      (activation): Tanh()\n",
      "    )\n",
      "  )\n",
      "  (classifier): Linear(in_features=768, out_features=1, bias=True)\n",
      "  (mlp_head): Sequential(\n",
      "    (0): Linear(in_features=768, out_features=768, bias=True)\n",
      "    (1): ReLU()\n",
      "    (2): Linear(in_features=768, out_features=768, bias=True)\n",
      "    (3): ReLU()\n",
      "    (4): Linear(in_features=768, out_features=768, bias=True)\n",
      "  )\n",
      ")\n",
      "--------------------------------------------------\n",
      "Total Parameters:\t 111.27M\n",
      "Frozen Parameters:\t 109.48M\n",
      "Trainable Parameters:\t   1.79M\t1.61%\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "from transformers import AutoModel\n",
    "import torch.nn.functional as F\n",
    "import numpy as np\n",
    "\n",
    "class PTuningBert(nn.Module):\n",
    "    def __init__(self, num_virtual_tokens=20, reparameterization_type=\"MLP\"):\n",
    "        super().__init__()\n",
    "        # 加载预训练模型\n",
    "        self.model = AutoModel.from_pretrained(\"bert-base-uncased\")\n",
    "        self.classifier = nn.Linear(self.model.config.hidden_size, 1)\n",
    "\n",
    "        # 冻结除分类器层之外的参数\n",
    "        for param in self.model.parameters():\n",
    "            param.requires_grad = False\n",
    "\n",
    "        hidden_size = self.model.config.hidden_size\n",
    "        self.num_virtual_tokens = num_virtual_tokens\n",
    "        # 定义一个可学习的参数，作为虚拟提示的初始值，其形状为(num_virtual_tokens, hidden_size)\n",
    "        self.prompt = nn.Parameter(torch.zeros(self.num_virtual_tokens, hidden_size))\n",
    "        print(self.prompt.shape)\n",
    "        # 重新参数化,根据传入的reparameterization_type参数，初始化不同的重新参数化头部\n",
    "        self.reparameterization_type = reparameterization_type\n",
    "        if reparameterization_type == \"MLP\":\n",
    "            self.mlp_head = nn.Sequential(\n",
    "                nn.Linear(hidden_size, hidden_size),\n",
    "                nn.ReLU(),\n",
    "                nn.Linear(hidden_size, hidden_size),\n",
    "                nn.ReLU(),\n",
    "                nn.Linear(hidden_size, hidden_size),\n",
    "            )\n",
    "        elif reparameterization_type == \"LSTM\":\n",
    "            self.lstm_head = nn.LSTM(\n",
    "                input_size=hidden_size,\n",
    "                hidden_size=hidden_size,\n",
    "                num_layers=2,\n",
    "                bidirectional=True,\n",
    "                batch_first=True,\n",
    "            )\n",
    "            self.mlp_head = nn.Sequential(\n",
    "                nn.Linear(hidden_size * 2, hidden_size * 2),\n",
    "                nn.ReLU(),\n",
    "                nn.Linear(hidden_size * 2, hidden_size),\n",
    "            )\n",
    "\n",
    "    def forward(self, input_ids, attention_mask, **args):\n",
    "        # 获取输入的批次大小\n",
    "        batch_size = input_ids.size(0)\n",
    "        # 将虚拟提示扩展到与输入相同批次大小\n",
    "        prompt = self.prompt.unsqueeze(0).expand(batch_size, -1, -1)\n",
    "        print(prompt.shape)\n",
    "        # 根据选择的重新参数化类型，对虚拟提示进行处理\n",
    "        if self.reparameterization_type == \"MLP\":\n",
    "            prompt = self.mlp_head(prompt)\n",
    "        elif self.reparameterization_type == \"LSTM\":\n",
    "            prompt, _ = self.lstm_head(prompt)\n",
    "            prompt = self.mlp_head(prompt)\n",
    "\n",
    "        # 将虚拟提示与输入的嵌入层输出连接，形成扩展的输入嵌入\n",
    "        embedding_output = self.model.embeddings(input_ids)\n",
    "        extended_inputs_embeds = torch.cat([prompt, embedding_output], dim=1) #在seq_len进行拼接\n",
    "        extended_attention_mask = torch.cat([\n",
    "            torch.ones(batch_size, self.num_virtual_tokens).to(input_ids.device),\n",
    "            attention_mask\n",
    "        ], dim=1)\n",
    "\n",
    "        #将扩展的输入嵌入和注意力掩码输入BERT模型\n",
    "        outputs = self.model(inputs_embeds=extended_inputs_embeds, attention_mask=extended_attention_mask)\n",
    "        # 获取经过BERT模型处理后的特定位置的特征，即虚拟提示之后的第一个位置，等价于原来的第0个位置\n",
    "        feature = outputs.last_hidden_state[:, self.num_virtual_tokens, :]\n",
    "\n",
    "        logits = self.classifier(feature)\n",
    "        return torch.sigmoid(logits).squeeze()\n",
    "\n",
    "\n",
    "# 加载预训练模型\n",
    "ptuning_bert = PTuningBert()\n",
    "print('-'*50)\n",
    "print(ptuning_bert)\n",
    "print('-'*50)\n",
    "# 记录参数数量\n",
    "# def count_parameters(model):\n",
    "#     return sum(p.numel() for p in model.parameters() if p.requires_grad)\n",
    "\n",
    "count_parameters(ptuning_bert)"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "# 进行训练\n",
    "training_record[\"P-Tuning\"] = train(ptuning_bert, train_loader, val_loader, device, num_epochs=num_epochs, patience=patience)"
   ],
   "metadata": {
    "id": "wmx-55LyyIct"
   },
   "execution_count": null,
   "outputs": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "mSxSMbj9vBqX"
   },
   "outputs": [],
   "source": [
    "del ptuning_bert"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "plot_training_record(training_record, metric_name=\"val_acc\")"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 542
    },
    "id": "vwee_u0CnGoK",
    "outputId": "a5934435-0cfd-45d9-b6fa-b4eadfbc7195"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ],
      "image/png": "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XE2IBwAAaKOCg4MVHx9f4zVu3DjNmTNH999/vzp16qRJkyZJkjZu3KiUlBQFBwcrISFBDz/8sBwOhyTpwIEDMplMdV6jR4/2vNemTZs0YsQIhYaGKikpSffee69KSko867t166Znn31Wt99+uyIjI5WcnKy//OUvrfrzgBtBHvCxTw+c1PUvbtbPXv1M+46XqGN4kJ5Ou1Rr0kdp6oAEZlcFAABoZoZhqLTC0SyvMxVOr7Y3DKNZPsPf//53BQUF6eOPP9bixYt1+PBhTZ06VUOHDtWXX36pF198US+99JJ+/etfS5KSkpJ09OhRz+vzzz9Xx44dNXLkSEnS3r17NXnyZF1//fX66quvtGzZMm3atElz5syp8b5//OMfNWTIEH3++ee65557dPfdd2vnzp3N8pnQdFxaD/gIM9EDAAD4xhm7U5c88b5P3vu7pycpLKjpMezdd99VRESEZ3nKlCmSpN69e+v3v/+9p/3RRx9VUlKSnn/+eZlMJvXr109HjhzRQw89pCeeeEIWi0Xx8fGSpLKyMs2YMUPDhg3TU089JUlasGCBfvSjH+n+++/3HP/Pf/6zRo0apRdffFEhIe6JlqdOnap77rlHkvTQQw/pueee0/r169W3b9/z/pnAewR5oJXVPxN9ku4f30dxzEQPAACAasaMGaMXX3zRsxweHq5Zs2Zp8ODBNbb7/vvvNWzYsBpXc15zzTUqLi7WoUOHlJyc7Gm//fbbVVRUpDVr1shsdl+k/eWXX+qrr77Sv/71L892hmHI5XJp//796t+/vyRp4MCBnvUmk0nx8fE6duxY835onBNBHmglxeUOvbJhv/5abSb68f3dM9H3jmMmegAAgNYSarPou6cnXfBxXC6XigqLFBkV6QnETXlvb4SHh9c7Q314eLhXx6ny61//Wu+//76ysrIUGXn2d9Di4mL993//t+699946+1Q/CWCz1bxy1GQyyeVynVctOH8EeaCF2Z0ubco16ennNulEiXsm+suT2umRKf2U2qOjj6sDAABoe0wmk1eXtzfE5XLJEWRRWJC1yUG+pfTv319vvfWWDMPwjMp//PHHioyMVJcuXSRJb731lp5++mm999576tmzZ439r7zySn333Xc81i5AMNkd0ELcM9Hn6tr/2aw391t0ouTsTPTL77maEA8AAIBmc8899ygnJ0e/+MUvtGPHDmVkZOjJJ59Uenq6zGazvvnmG82ePVsPPfSQLr30UuXm5io3N1cnT56U5L7fffPmzZozZ46++OIL7d69WxkZGXUmu4N/YEQeaAGfHjipBe/t0PaDpyRJEVZDv5zcXz8e1l02C+fPAAAA0LwSExO1atUq/epXv9Lll1+uDh066Kc//akee+wxSdKnn36q0tJS/frXv/bMZC9Jo0aN0oYNGzRw4EBt3LhRjz76qEaMGCHDMNSzZ0/NnDnTVx8JjSDIA82ovpnob7u6q7qW7tIPU5MJ8QAAAGiyV155pd72DRs21Ns+atQoZWVl1bvu1ltv1a233tro+w0dOlQffPBBg+sPHDhQp+2LL75o9JhoGQR5oBkcKyrTn9bu1tJ6ZqLvEGrRqlW7fF0iAAAAgIsEQR64ACXlDv3lw321ZqKP1UOT+3lmorfb7b4sEQAAAMBFhiAPnAe706Vl23K0aO1uHS8ul8RM9AAAAABaB0Ee8IJhGHr/2zz9fvUO7TteIknq1jFMcyf305TL4j2P+gAAAACAlkKQB5po+8GTenbV2ZnoO4YH6d5xvTUrJVlBViaxAwAAANA6CPLAOezNd89E//637pnoQ2xm3Tmih+4a2UORITYfVwcAAACgrSHIAw2obyb6G4ck6YEJfRQXFeLr8gAAAAC0UQR5oJaScof++tE+/eXDhmeiBwAAAABfIcgDlZiJHgAAAEAgYIYutHmGYWj1N7matOhDPbb8Gx0vLlfXjmF64eYrtfyeqwnxAAAACEijR4/W/fff71nu1q2bFi1a1CLv9corr6hdu3YtcuzWUvvn5c8I8mjTth88qf9avEU/e3W79uWXqEN4kOZPv1RrHhilawcm8Dg5AAAA+Mytt94qk8lU57Vnzx6f1LNhw4Z663nsscc0c+ZM7dq1q8Xeu1u3bvW+d9Xr1ltvveD3ePvtt/XMM89ceLGtgEvr0SbVNxP9HcN76L9HMRM9AAAA/MfkyZP18ssv12iLiYnxUTVuO3fuVFRUlGc5IiJCoaGhCg0NbbH33LZtm5xO9/xVmzdv1vXXX1+jjuZ47w4dOlzwMVoLI/JoU/KLyvXY8q818bkP9f63eTKbpJuGJmnDg2P04KS+hHgAAIC2wDCkipLmedlLvdveMLwqNTg4WPHx8TVeFotFt956q2bMmFFj2/vvv1+jR49u0nFvv/12XXfddTXa7Ha7YmNj9dJLLzW6b2xsbI16IiIi6lxa/9RTT2nQoEH65z//qW7duik6Olo33XSTioqKPNu4XC4tWLBA3bt3V2hoqC6//HL9+9//rvc9Y2JiPO9XFbir6li9erW6du1aY/vly5fXuLr2t7/9ra688spG66nvVoRnn31Wt99+uyIjI5WcnKy//OUvNd5n8+bNGjRokEJCQjRkyBDP+37xxReN/gwvFCPyaBOYiR4AAAAe9lLp2c4XfBizpHbe7vTIESko/ILf+0LdcccdGjlypI4ePaqEhARJ0rvvvqvS0lLNnDmzWd5j7969Wr58ud59912dOnVKN954o37729/qN7/5jSRpwYIFevXVV7V48WL17t1bH374oX784x8rJiZGo0aNapYavKmnPn/84x/1zDPP6JFHHtG///1v3X333Ro1apT69u2rwsJCTZs2TVOnTtVrr72mgwcPtto99gR5XNTqnYm+S7TmTe2vq5jEDgAAAH7u3XffVUREhGd5ypQpevPNNy/4uFdffbX69u2rf/7zn5o7d64k6eWXX9YNN9xQ4/3q06VLlxrLBw8erHc7l8ulV155RZGR7oGzn/zkJ8rMzNRvfvMblZeX69lnn9XatWs1bNgwSVKPHj20adMm/d///V+LBPnG6mnI1KlTdc8990iSHnroIT333HNav369+vbtq9dee00mk0l//etfFRISoksuuUSHDx/WnXfe2ey110aQx0XJMAx98F2efrd6h/bll0iSunYM09xJ/TR1QDyT2AEAALRltjD3yPgFcrlcKiwqUlRkpMzmJt61bAvz6j3GjBmjF1980bMcHt58o/l33HGH/vKXv2ju3LnKy8vTe++9p3Xr1p1zv48++sgThiWpffv29W7XrVu3GtslJCTo2LFjkqQ9e/aotLRUEyZMqLFPRUWFrrjiCknSpZde6jlJMGLECL333nvefUAv6mnIwIEDPd+bTCbFx8d79tm5c6cGDhyokJAQzzYpKSkXVGNTEeRx0dl+8KSeXbVD2w+ekiR1CA/SvWN76ebUrgqyMi0EAABAm2cyNc/l7S6XZHO6j9XUIO+l8PBw9erVq0672WyWUet+e7vd7tWxZ8+erYcfflhbtmzR5s2b1b17d40YMeKc+3Xv3r1Jj5qz2WrOP2UymeRyuSRJxcXFkqSVK1cqMTGxxnbBwcGSpFWr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\n"
     },
     "metadata": {}
    }
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([32, 20, 768])\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "prefix_tokens = nn.Parameter(torch.zeros(20, 768))\n",
    "prefix_tokens = prefix_tokens.unsqueeze(0).expand(32, -1, -1)\n",
    "print(prefix_tokens.shape)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-08-08T08:29:29.571087100Z",
     "start_time": "2024-08-08T08:29:29.449216900Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "dQn2R_bRvBqX",
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "outputId": "18fab5db-de06-4b97-bc12-3d74655ed71d"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stderr",
     "text": [
      "/usr/local/lib/python3.10/dist-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "PrefixTuningBert(\n",
      "  (model): BertModel(\n",
      "    (embeddings): BertEmbeddings(\n",
      "      (word_embeddings): Embedding(30522, 768, padding_idx=0)\n",
      "      (position_embeddings): Embedding(512, 768)\n",
      "      (token_type_embeddings): Embedding(2, 768)\n",
      "      (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "      (dropout): Dropout(p=0.1, inplace=False)\n",
      "    )\n",
      "    (encoder): BertEncoder(\n",
      "      (layer): ModuleList(\n",
      "        (0-11): 12 x BertLayer(\n",
      "          (attention): BertAttention(\n",
      "            (self): BertSelfAttention(\n",
      "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (dropout): Dropout(p=0.1, inplace=False)\n",
      "            )\n",
      "            (output): BertSelfOutput(\n",
      "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "              (dropout): Dropout(p=0.1, inplace=False)\n",
      "            )\n",
      "          )\n",
      "          (intermediate): BertIntermediate(\n",
      "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
      "            (intermediate_act_fn): GELUActivation()\n",
      "          )\n",
      "          (output): BertOutput(\n",
      "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
      "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "            (dropout): Dropout(p=0.1, inplace=False)\n",
      "          )\n",
      "        )\n",
      "      )\n",
      "    )\n",
      "    (pooler): BertPooler(\n",
      "      (dense): Linear(in_features=768, out_features=768, bias=True)\n",
      "      (activation): Tanh()\n",
      "    )\n",
      "  )\n",
      "  (classifier): Linear(in_features=768, out_features=1, bias=True)\n",
      "  (transform): Sequential(\n",
      "    (0): Linear(in_features=768, out_features=768, bias=True)\n",
      "    (1): Tanh()\n",
      "    (2): Linear(in_features=768, out_features=18432, bias=True)\n",
      "  )\n",
      ")\n",
      "Total Parameters:\t 124.26M\n",
      "Frozen Parameters:\t 109.48M\n",
      "Trainable Parameters:\t  14.78M\t11.89%\n"
     ]
    }
   ],
   "source": [
    "# 定义一个继承自nn.Module的类，用于前缀调优的BERT模型\n",
    "class PrefixTuningBert(nn.Module):\n",
    "    def __init__(self, num_virtual_tokens=20, prefix_projection=True):\n",
    "        super().__init__()  # 调用父类的初始化方法\n",
    "        # 加载预训练的BERT模型\n",
    "        self.model = AutoModel.from_pretrained(\"bert-base-uncased\")\n",
    "        # 添加一个线性分类层\n",
    "        self.classifier = nn.Linear(self.model.config.hidden_size, 1)\n",
    "\n",
    "        # 冻结预训练模型的参数，只训练分类器层\n",
    "        for param in self.model.parameters():\n",
    "            param.requires_grad = False\n",
    "\n",
    "        # 前缀相关的参数\n",
    "        self.num_virtual_tokens = num_virtual_tokens  # 虚拟token的数量\n",
    "        self.prefix_projection = prefix_projection  # 是否使用前缀投影\n",
    "        hidden_size = self.model.config.hidden_size  # 隐藏层大小\n",
    "        self.num_layers = self.model.config.num_hidden_layers  # Transformer层数\n",
    "        self.num_attention_heads = self.model.config.num_attention_heads  # 注意力头数\n",
    "        self.embed_size_per_head = hidden_size // self.num_attention_heads  # 每个头的嵌入大小\n",
    "\n",
    "        # 如果使用前缀投影\n",
    "        if self.prefix_projection:\n",
    "            # 使用两层MLP来编码前缀token\n",
    "            self.prefix_tokens = nn.Parameter(torch.zeros(self.num_virtual_tokens, hidden_size))\n",
    "            self.transform = torch.nn.Sequential(\n",
    "                torch.nn.Linear(hidden_size, hidden_size),  # 第一层MLP\n",
    "                torch.nn.Tanh(),  # 使用tanh激活函数\n",
    "                torch.nn.Linear(hidden_size, self.num_layers * 2 * hidden_size),  # 第二层MLP\n",
    "            )\n",
    "        else:\n",
    "            # 不使用前缀投影，直接使用token\n",
    "            self.prefix_tokens = nn.Parameter(torch.zeros(self.num_virtual_tokens, hidden_size))\n",
    "\n",
    "    def forward(self, input_ids, attention_mask, **args):\n",
    "        # 将前缀token投影并分割为key和value\n",
    "        batch_size = input_ids.size(0) #获得批次大小\n",
    "        prefix_tokens = self.prefix_tokens.unsqueeze(0).expand(batch_size, -1, -1)\n",
    "        if self.prefix_projection:\n",
    "            past_key_values = self.transform(prefix_tokens) #输出的形状为(batch_size, 20, self.num_layers * 2 * hidden_size)\n",
    "        else:\n",
    "            past_key_values = prefix_tokens\n",
    "\n",
    "        # 改变形状以适配Transformer的输入格式\n",
    "        # print(past_key_values.shape)\n",
    "        #(batch_size, self.num_layers, 2, self.num_attention_heads, -1, self.embed_size_per_head)\n",
    "        past_key_values = past_key_values.view(batch_size, self.num_layers, 2, self.num_attention_heads, -1, self.embed_size_per_head)\n",
    "        # print(past_key_values.shape)\n",
    "        # 重新排列维度以适配Transformer的输入格式\n",
    "        #(2，self.num_layers,batch_size, self.num_attention_heads, -1, self.embed_size_per_head)\n",
    "        past_key_values = past_key_values.permute(2, 1, 0, 3, 4, 5)\n",
    "        # 分离成多个包含key和value的元组，每个元组对应一层Transformer\n",
    "        past_key_values = tuple([tuple([past_key_values[0][i], past_key_values[1][i]]) for i in range(self.num_layers)])\n",
    "\n",
    "        # 修改注意力掩码，包含前缀token\n",
    "        extended_attention_mask = torch.cat([\n",
    "            torch.ones(batch_size, self.num_virtual_tokens).to(attention_mask.device),  # 前缀的注意力掩码\n",
    "            attention_mask\n",
    "            ], dim=1)\n",
    "\n",
    "        # 将数据输入到BERT模型中\n",
    "        outputs = self.model(input_ids, extended_attention_mask, past_key_values=past_key_values)\n",
    "\n",
    "        feature = outputs.last_hidden_state[:, 0, :]  # 获取[CLS] token的特征表示\n",
    "\n",
    "        # 使用分类层进行分类\n",
    "        logits = self.classifier(feature)\n",
    "\n",
    "        # 返回sigmoid激活后的logits\n",
    "        return torch.sigmoid(logits).squeeze()\n",
    "\n",
    "# 创建前缀调优BERT模型实例\n",
    "prefix_tuning_bert = PrefixTuningBert()\n",
    "print(prefix_tuning_bert)\n",
    "# 计算模型参数数量\n",
    "count_parameters(prefix_tuning_bert)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "768*12*2 #2代表key和value"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "Z0AL8NA12KDh",
    "outputId": "5ef4924f-9807-40b2-d9dd-bc7ae23abd65"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "18432"
      ]
     },
     "metadata": {},
     "execution_count": 16
    }
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "12*64"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "nxCuEu2s2gdQ",
    "outputId": "fcaa8247-4d22-4ee3-be32-0317194fe5e6"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "768"
      ]
     },
     "metadata": {},
     "execution_count": 17
    }
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "# 训练模型，这里的train函数和train_loader、val_loader等变量需要在其他地方定义\n",
    "# num_epochs和patience变量也需要在其他地方定义\n",
    "training_record[\"Prefix Tuning\"] = train(prefix_tuning_bert, train_loader, val_loader, device, num_epochs=num_epochs, patience=patience)"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000,
     "referenced_widgets": [
      "0b340b2310eb477db6f4b8b6893e9c9f",
      "c36a158ccde64f3281c435a5a28f8997",
      "22126f42da1c40cca855ab7b14ed9f17",
      "41e42f855bb9492baf6f91b876473436",
      "daf1e9f0ace643b28ec51aa3f67914cd",
      "d060856e36074e0985549f12be53fec0",
      "f5de7127c6af43f7aee020e11fc5be7e",
      "6cc38298fbc248b0aaf32d12cbb6ae59",
      "58c5d5d727fa44ba87011cf7cab0b895",
      "b6d43e1c9289433abfa944c4bb6e3c0a",
      "2e773b2d022c46128d59d3b37a5e76cb"
     ]
    },
    "id": "tVjadWn41o72",
    "outputId": "70e5f743-2508-4825-f9b0-b07819da370a"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "0b340b2310eb477db6f4b8b6893e9c9f"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n",
      "torch.Size([32, 20, 18432])\n",
      "torch.Size([32, 12, 2, 12, 20, 64])\n"
     ]
    },
    {
     "output_type": "error",
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "traceback": [
      "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m",
      "\u001B[0;31mKeyboardInterrupt\u001B[0m                         Traceback (most recent call last)",
      "\u001B[0;32m<ipython-input-15-af7e1c135a9c>\u001B[0m in \u001B[0;36m<cell line: 3>\u001B[0;34m()\u001B[0m\n\u001B[1;32m      1\u001B[0m \u001B[0;31m# 训练模型，这里的train函数和train_loader、val_loader等变量需要在其他地方定义\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m      2\u001B[0m \u001B[0;31m# num_epochs和patience变量也需要在其他地方定义\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m----> 3\u001B[0;31m \u001B[0mtraining_record\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0;34m\"Prefix Tuning\"\u001B[0m\u001B[0;34m]\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mtrain\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mprefix_tuning_bert\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mtrain_loader\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mval_loader\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mdevice\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mnum_epochs\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mnum_epochs\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mpatience\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mpatience\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m",
      "\u001B[0;32m<ipython-input-8-7549daf3126a>\u001B[0m in \u001B[0;36mtrain\u001B[0;34m(model, train_loader, val_loader, device, num_epochs, patience)\u001B[0m\n\u001B[1;32m     65\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m     66\u001B[0m             \u001B[0;31m# 收集指标\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m---> 67\u001B[0;31m             \u001B[0mtrain_loss\u001B[0m \u001B[0;34m+=\u001B[0m \u001B[0mloss\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mitem\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m     68\u001B[0m             \u001B[0mtrain_acc\u001B[0m \u001B[0;34m+=\u001B[0m \u001B[0;34m(\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mprobs\u001B[0m \u001B[0;34m>\u001B[0m \u001B[0;36m0.5\u001B[0m\u001B[0;34m)\u001B[0m \u001B[0;34m==\u001B[0m \u001B[0mlabels\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0msum\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mitem\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m     69\u001B[0m             \u001B[0mtotal_samples\u001B[0m \u001B[0;34m+=\u001B[0m \u001B[0mlen\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mlabels\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n",
      "\u001B[0;31mKeyboardInterrupt\u001B[0m: "
     ]
    }
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "nbQWSuFJvBqY"
   },
   "outputs": [],
   "source": [
    "del prefix_tuning_bert"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "plot_training_record(training_record, metric_name=\"val_acc\")"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 542
    },
    "id": "0JhjzSl_nH1i",
    "outputId": "053fac25-6947-478b-8661-85b2c504d819"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ],
      "image/png": "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\n"
     },
     "metadata": {}
    }
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "from transformers import AutoModel, AutoTokenizer\n",
    "\n",
    "class PTuningV2Bert(nn.Module):\n",
    "    def __init__(self, num_virtual_tokens=20, prefix_projection=True):\n",
    "        super().__init__()\n",
    "        # 加载预训练的BERT模型\n",
    "        self.model = AutoModel.from_pretrained(\"bert-base-uncased\")\n",
    "        # 添加一个线性分类层\n",
    "        self.classifier = nn.Linear(self.model.config.hidden_size, 1)\n",
    "\n",
    "        # 冻结预训练模型的参数，只训练分类器层\n",
    "        for param in self.model.parameters():\n",
    "            param.requires_grad = False\n",
    "\n",
    "        # 前缀相关的参数\n",
    "        self.num_virtual_tokens = num_virtual_tokens\n",
    "        self.prefix_projection = prefix_projection\n",
    "        hidden_size = self.model.config.hidden_size\n",
    "        self.num_layers = self.model.config.num_hidden_layers\n",
    "        self.num_attention_heads = self.model.config.num_attention_heads\n",
    "        self.embed_size_per_head = hidden_size // self.num_attention_heads\n",
    "\n",
    "        # P-Tuning v2 的前缀嵌入\n",
    "        self.prefix_embeddings = nn.Embedding(self.num_virtual_tokens, hidden_size)\n",
    "        nn.init.uniform_(self.prefix_embeddings.weight, -0.1, 0.1)\n",
    "\n",
    "        if self.prefix_projection:\n",
    "            # 使用两层MLP来编码前缀token\n",
    "            self.prefix_projection_layer = nn.Sequential(\n",
    "                nn.Linear(hidden_size, hidden_size),\n",
    "                nn.Tanh(),\n",
    "                nn.Linear(hidden_size, self.num_layers * 2 * hidden_size)\n",
    "            )\n",
    "\n",
    "    def forward(self, input_ids, attention_mask, **args):\n",
    "        batch_size = input_ids.size(0)\n",
    "        prefix_tokens = torch.arange(self.num_virtual_tokens, device=input_ids.device).unsqueeze(0).expand(batch_size, -1)\n",
    "        prefix_embeddings = self.prefix_embeddings(prefix_tokens)\n",
    "\n",
    "        if self.prefix_projection:\n",
    "            past_key_values = self.prefix_projection_layer(prefix_embeddings)\n",
    "        else:\n",
    "            past_key_values = prefix_embeddings\n",
    "\n",
    "        # 改变形状以适配Transformer的输入格式\n",
    "        past_key_values = past_key_values.view(batch_size, self.num_layers, 2, self.num_attention_heads, -1, self.embed_size_per_head)\n",
    "        past_key_values = past_key_values.permute(2, 1, 0, 3, 4, 5)\n",
    "        past_key_values = tuple([tuple([past_key_values[0][i], past_key_values[1][i]]) for i in range(self.num_layers)])\n",
    "\n",
    "        # 修改注意力掩码，包含前缀token\n",
    "        extended_attention_mask = torch.cat([\n",
    "            torch.ones(batch_size, self.num_virtual_tokens).to(attention_mask.device),  # 前缀的注意力掩码\n",
    "            attention_mask\n",
    "        ], dim=1)\n",
    "\n",
    "        # 将数据输入到BERT模型中\n",
    "        outputs = self.model(input_ids, attention_mask=extended_attention_mask, past_key_values=past_key_values)\n",
    "\n",
    "        feature = outputs.last_hidden_state[:, 0, :]  # 获取[CLS] token的特征表示\n",
    "\n",
    "        # 使用分类层进行分类\n",
    "        logits = self.classifier(feature)\n",
    "\n",
    "        # 返回sigmoid激活后的logits\n",
    "        return torch.sigmoid(logits).squeeze()\n",
    "\n",
    "# 创建P-Tuning v2 BERT模型实例\n",
    "p_tuning_v2_bert = PTuningV2Bert()\n",
    "print(p_tuning_v2_bert)\n",
    "\n",
    "# 计算模型参数数量\n",
    "# def count_parameters(model):\n",
    "#     return sum(p.numel() for p in model.parameters() if p.requires_grad)\n",
    "\n",
    "print(f'Total trainable parameters: {count_parameters(p_tuning_v2_bert)}')\n",
    "\n",
    "\n",
    "training_record[\"P-Tuning v2\"] = train(p_tuning_v2_bert, train_loader, val_loader, device, num_epochs=num_epochs, patience=patience)\n"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000,
     "referenced_widgets": [
      "5c316b59267849a98e3eb3b1c7d2cfc9",
      "9b39821a816e4a518478da662273c3ec",
      "19237ecab69f413ebcc7abf213d4a444",
      "b13a3b59b94e4ea094bd763a943a3868",
      "7499d13529c9491eb0903939448231e0",
      "13a3932bcde94c80a57731a4b899fde4",
      "875d1b1097a44795b8a7f006a95b7a2a",
      "1fc4b557389d41bd8754778f02687446",
      "3c199c618f914111b9ec644697557846",
      "394f814d0b984e44963f5a42a513beac",
      "74d8a15d788141348f1a05df71dc6330",
      "46d92dff466c45de9034737a8f827240",
      "29b0e48e7faa49e2847b1dc5bac8191b",
      "bde8ed51d8e04b23942a52a85e320736",
      "beb4e07dcad147f4b683f43fe7ce7b3d",
      "56161645ad2d4b568f36f30ba9227a47",
      "3dda788b53c94736bf322f9d5eb27fc4",
      "ef9f277fe24441c3ab18acb38b70a0cc",
      "ee55b41c575b41eda5389026fc19e70a",
      "302424269c5d4a7cbb870e68396e68e4",
      "4f714c70ca0948bbac5640a114f242ea",
      "0f4dce6652ee4a92b181f50eb5c52c13",
      "ead9403b81354fe2a9e31be116435b24",
      "ea96bcb8405e4db6a110130977c2b75e",
      "8a8804c357af47199c7d4ce9064a6c42",
      "afff980167664a4fb2eef5841c2266ea",
      "7864c3e24840470db136b44cf31a8149",
      "b69e0af046524562998d10d9f5ebfd7c",
      "1eaa2f53d3c5410a885bb0e89567ea6d",
      "e4e3f3d51505427fa5ca17a31fb88620",
      "c524ecf7cbff40edaa41a949f8297c02",
      "f225d7d141204cfeafe716e651877ebd",
      "4bb95f8c757743a9a2afb4da77504cb0",
      "037d51c434f0413cb874b3f33ba3a19c",
      "6d72079fe41f4a7383d49b6c39d18ef3",
      "14bdf3461e294d9389cf0a4f13184540",
      "c219985fca034971a928a26a44b6731d",
      "3828d9d9da104e028ac560a22123cdca",
      "cbe656767578475eb2396730b2843f9b",
      "0c333073bf764ed5a7e73c59e69ae097",
      "ba7984e852504709971152426b2655a1",
      "42a23a8bb2974fc98b396c97592e44c0",
      "c7b90cc4090449f69f88555a9e8f458e",
      "af9cc8ed41f14934803e1ee78ef85cd3",
      "e1401e84600043a28408ccb253f53c48",
      "d5591b1f7cbe421987a53a81b28972c6",
      "1997c51636324351858647bdbbcf78e5",
      "dbe712b22f5b4c91853ebbeb74e0267c",
      "a9f9b2bcb03e43d398a32d0f9b8c5cb5",
      "3539cfc261f64aa199fc053ae3fc58d2",
      "f51cf3ea24834c1aa2ea5c143c8329af",
      "9f16efb8a12c48feb9ba53dcb82f7fda",
      "aaea58f4fc704738a2f9d1ed150ad46c",
      "d747304251ab4d8fb8cf61258b9a26be",
      "55c53a92cbd949008af193f54f1510bd",
      "951b1a219633481bad0ecbe86343f3c7",
      "f35eb19513074b12879afb69a807215b",
      "b7e7ce3eb4234a7da22c15c0b51819f4",
      "aca9f14f5ae44b058c1b62b79791c51e",
      "257c28fb90124ffea20e5b209f03c495",
      "36cbbbb92f364447a06bb4dae9061930",
      "cb4dc88ee0fe47c7af8e0cda3e93b1c5",
      "fda088654cf4421789bbff5b06d7e818",
      "109468b138d7436c89d6eef09d695834",
      "fefadb95a32e41818a0f28531d16aa72",
      "a0d12106bd36464cb84d5c4fc5657eb0"
     ]
    },
    "id": "-Pglk6rhMQR5",
    "outputId": "92bb1ab5-51b1-4c2e-cfd6-330b5c081b81"
   },
   "execution_count": null,
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "5c316b59267849a98e3eb3b1c7d2cfc9",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "model.safetensors:   0%|          | 0.00/440M [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "metadata": {
      "tags": null
     },
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "PTuningV2Bert(\n",
      "  (model): BertModel(\n",
      "    (embeddings): BertEmbeddings(\n",
      "      (word_embeddings): Embedding(30522, 768, padding_idx=0)\n",
      "      (position_embeddings): Embedding(512, 768)\n",
      "      (token_type_embeddings): Embedding(2, 768)\n",
      "      (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "      (dropout): Dropout(p=0.1, inplace=False)\n",
      "    )\n",
      "    (encoder): BertEncoder(\n",
      "      (layer): ModuleList(\n",
      "        (0-11): 12 x BertLayer(\n",
      "          (attention): BertAttention(\n",
      "            (self): BertSdpaSelfAttention(\n",
      "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (dropout): Dropout(p=0.1, inplace=False)\n",
      "            )\n",
      "            (output): BertSelfOutput(\n",
      "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "              (dropout): Dropout(p=0.1, inplace=False)\n",
      "            )\n",
      "          )\n",
      "          (intermediate): BertIntermediate(\n",
      "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
      "            (intermediate_act_fn): GELUActivation()\n",
      "          )\n",
      "          (output): BertOutput(\n",
      "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
      "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "            (dropout): Dropout(p=0.1, inplace=False)\n",
      "          )\n",
      "        )\n",
      "      )\n",
      "    )\n",
      "    (pooler): BertPooler(\n",
      "      (dense): Linear(in_features=768, out_features=768, bias=True)\n",
      "      (activation): Tanh()\n",
      "    )\n",
      "  )\n",
      "  (classifier): Linear(in_features=768, out_features=1, bias=True)\n",
      "  (prefix_embeddings): Embedding(20, 768)\n",
      "  (prefix_projection_layer): Sequential(\n",
      "    (0): Linear(in_features=768, out_features=768, bias=True)\n",
      "    (1): Tanh()\n",
      "    (2): Linear(in_features=768, out_features=18432, bias=True)\n",
      "  )\n",
      ")\n",
      "Total trainable parameters: 14780929\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "46d92dff466c45de9034737a8f827240",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "metadata": {
      "tags": null
     },
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch 0: train_loss 0.6896, train_acc 0.5248, val_loss 0.6635, val_acc 0.5940\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ead9403b81354fe2a9e31be116435b24",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "metadata": {
      "tags": null
     },
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch 1: train_loss 0.3959, train_acc 0.8263, val_loss 0.3096, val_acc 0.8693\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "037d51c434f0413cb874b3f33ba3a19c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "metadata": {
      "tags": null
     },
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch 2: train_loss 0.3059, train_acc 0.8721, val_loss 0.2941, val_acc 0.8761\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e1401e84600043a28408ccb253f53c48",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "metadata": {
      "tags": null
     },
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch 3: train_loss 0.2938, train_acc 0.8759, val_loss 0.2927, val_acc 0.8819\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "951b1a219633481bad0ecbe86343f3c7",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/2105 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "epoch 4: train_loss 0.2921, train_acc 0.8779, val_loss 0.2906, val_acc 0.8819\n"
     ]
    }
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "plot_training_record(training_record, metric_name=\"val_acc\")"
   ],
   "metadata": {
    "id": "eo9h_bmNRcz5",
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 542
    },
    "outputId": "22e2931a-16b4-42f1-a0b9-eb289e09200d"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ],
      "image/png": "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AAAAsBCKPAAAAAAAFkKRD3ALFixQbGys3G634uPjtWnTpkuuv2zZMnXq1Elut1vXXHONPvnkk1pKWr/5M6c333xTNputzJfb7a7FtPXP559/rptvvllRUVGy2Wz6+9///qOvSU1NVffu3eVyudS+fXu9+eabNZ6zvvN3TqmpqeU+SzabTdnZ2bUTuB6aN2+eevbsqUaNGqlFixa65ZZblJ6e/qOv43tT7arKnPjeVPsWLlyoa6+9VmFhYQoLC1Pv3r316aefXvI1fJZql78z4nMUGH7/+9/LZrNp5syZl1zP6p8ninwAe//995WYmKg5c+bo66+/VteuXZWQkKAjR45UuP4XX3yh0aNH6+6779Y333yjW265Rbfccou2bdtWy8nrF3/nJElhYWHKysoq/dq/f38tJq5/8vPz1bVrVy1YsKBS62dkZOimm27SgAED9O2332rmzJn61a9+pVWrVtVw0vrN3zmdk56eXubz1KJFixpKiHXr1mnq1KnauHGjkpOT5fF4NHToUOXn51/0NXxvqn1VmZPE96baduWVV+r3v/+90tLS9NVXX2ngwIH6+c9/rn//+98Vrs9nqfb5OyOJz5HZNm/erD/96U+69tprL7lenfg8GQhYvXr1MqZOnVr62Ov1GlFRUca8efMqXH/kyJHGTTfdVGZZfHy88etf/7pGc9Z3/s7pjTfeMBo3blxL6XAhScaHH354yXUefPBB4+qrry6zbNSoUUZCQkINJsP5KjOntWvXGpKMEydO1EomlHfkyBFDkrFu3bqLrsP3JvNVZk58bwoMTZo0MRYvXlzhc3yWAsOlZsTnyFynT582OnToYCQnJxv9+/c3ZsyYcdF168LniT3yAaq4uFhpaWkaPHhw6TK73a7Bgwdrw4YNFb5mw4YNZdaXpISEhIuuj8tXlTlJUl5enlq3bq2YmJgf/ckuah+fJWvp1q2bIiMjNWTIEP3rX/8yO069curUKUlS06ZNL7oOnyfzVWZOEt+bzOT1erV06VLl5+erd+/eFa7DZ8lclZmRxOfITFOnTtVNN91U7nNSkbrweaLIB6ijR4/K6/WqZcuWZZa3bNnyoud/Zmdn+7U+Ll9V5hQXF6clS5boH//4h9555x35fD716dNHBw8erI3IqISLfZZyc3N15swZk1LhQpGRkVq0aJE++OADffDBB4qJidENN9yg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\n"
     },
     "metadata": {}
    }
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "z1ychrhSvBqY"
   },
   "source": [
    "## LoRA\n",
    "\n",
    "LoRA（论文：LoRA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS），该方法的核心思想就是通过低秩分解来模拟参数的改变量，从而以极小的参数量来实现大模型的间接训练。\n",
    "\n",
    "在涉及到矩阵相乘的模块，在原始的PLM旁边增加一个新的通路，通过前后两个矩阵A,B相乘，第一个矩阵A负责降维，第二个矩阵B负责升维，中间层维度为r，从而来模拟所谓的本征秩（intrinsic rank）。"
   ]
  },
  {
   "cell_type": "markdown",
   "source": [
    "rank的作用：\n",
    "rank代表低秩矩阵的秩，即线性变换矩阵A和B的输出特征数量。在LoRA中，原始的高维特征通过线性变换A被映射到一个低维空间（rank维），然后再通过另一个线性变换B映射回原始特征空间。较低的rank值意味着更少的参数需要更新，从而降低了模型复杂度和计算成本。\n",
    "\n",
    "lora_alpha的作用：\n",
    "lora_alpha是一个缩放因子，用于调整LoRA输出的贡献。它通过除以rank来计算得到scaling，这个缩放因子被用于控制低秩空间中的特征对最终输出的贡献度。较大的lora_alpha值会增加LoRA特征的影响力，而较小的值则会减少其影响。"
   ],
   "metadata": {
    "id": "B-Z4_wDLSqS2"
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "YLpMBQPDvBqY",
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "outputId": "e31072c4-c6df-4926-bcae-5cca91077fea"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stderr",
     "text": [
      "/usr/local/lib/python3.10/dist-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "LoRABert(\n",
      "  (model): BertModel(\n",
      "    (embeddings): BertEmbeddings(\n",
      "      (word_embeddings): Embedding(30522, 768, padding_idx=0)\n",
      "      (position_embeddings): Embedding(512, 768)\n",
      "      (token_type_embeddings): Embedding(2, 768)\n",
      "      (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "      (dropout): Dropout(p=0.1, inplace=False)\n",
      "    )\n",
      "    (encoder): BertEncoder(\n",
      "      (layer): ModuleList(\n",
      "        (0-11): 12 x BertLayer(\n",
      "          (attention): BertAttention(\n",
      "            (self): BertSelfAttention(\n",
      "              (query): LoRALayer(\n",
      "                (module): Linear(in_features=768, out_features=768, bias=True)\n",
      "                (A): Linear(in_features=768, out_features=8, bias=False)\n",
      "                (B): Linear(in_features=8, out_features=768, bias=False)\n",
      "              )\n",
      "              (key): LoRALayer(\n",
      "                (module): Linear(in_features=768, out_features=768, bias=True)\n",
      "                (A): Linear(in_features=768, out_features=8, bias=False)\n",
      "                (B): Linear(in_features=8, out_features=768, bias=False)\n",
      "              )\n",
      "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (dropout): Dropout(p=0.1, inplace=False)\n",
      "            )\n",
      "            (output): BertSelfOutput(\n",
      "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "              (dropout): Dropout(p=0.1, inplace=False)\n",
      "            )\n",
      "          )\n",
      "          (intermediate): BertIntermediate(\n",
      "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
      "            (intermediate_act_fn): GELUActivation()\n",
      "          )\n",
      "          (output): BertOutput(\n",
      "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
      "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "            (dropout): Dropout(p=0.1, inplace=False)\n",
      "          )\n",
      "        )\n",
      "      )\n",
      "    )\n",
      "    (pooler): BertPooler(\n",
      "      (dense): Linear(in_features=768, out_features=768, bias=True)\n",
      "      (activation): Tanh()\n",
      "    )\n",
      "  )\n",
      "  (classifier): Linear(in_features=768, out_features=1, bias=True)\n",
      ")\n",
      "Total Parameters:\t 109.78M\n",
      "Frozen Parameters:\t 109.48M\n",
      "Trainable Parameters:\t 295.68K\t0.27%\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "from transformers import AutoModel\n",
    "# 其他必要的导入语句可能在这里，例如用于训练的优化器、损失函数等。\n",
    "\n",
    "# 定义LoRALayer类，它继承自PyTorch的nn.Module\n",
    "class LoRALayer(nn.Module):\n",
    "    # 初始化函数\n",
    "    def __init__(self, module: nn.Module, rank: int = 1, lora_alpha: int = 1):\n",
    "        # 调用父类的初始化函数\n",
    "        super().__init__()\n",
    "        # 确保输入的rank是正整数\n",
    "        assert isinstance(rank, int) and rank > 1, \"Lora rank should be a positive integer\"\n",
    "\n",
    "        # 计算缩放因子\n",
    "        self.scaling = lora_alpha / rank\n",
    "        # 存储传入的模块\n",
    "        self.module = module\n",
    "        # 定义从输入特征到rank维空间的线性变换A\n",
    "        self.A = nn.Linear(module.in_features, rank, bias=False)\n",
    "        # 定义从rank维空间到输出特征的线性变换B\n",
    "        self.B = nn.Linear(rank, module.out_features, bias=False)\n",
    "        # 使用Kaiming均匀初始化方法初始化A的权重,超参可选\n",
    "        nn.init.kaiming_uniform_(self.A.weight, a=5 ** 0.5)\n",
    "        # 将B的权重初始化为0，超参可选\n",
    "        nn.init.zeros_(self.B.weight)\n",
    "        # 将A和B移动到与模块权重相同的设备上\n",
    "        self.A.to(device=module.weight.device)\n",
    "        self.B.to(device=module.weight.device)\n",
    "\n",
    "    # 前向传播函数\n",
    "    def forward(self, inputs, *args, **kwargs):\n",
    "        # 首先通过原始模块进行前向传播\n",
    "        with torch.no_grad():  # 确保这个操作不会影响梯度计算\n",
    "            outputs = self.module(inputs, *args, **kwargs)\n",
    "        # 计算LoRA的输出并加到原始模块的输出上\n",
    "        return outputs + self.B(self.A(inputs)) * self.scaling\n",
    "\n",
    "# 定义LoRABert类，它也继承自PyTorch的nn.Module\n",
    "class LoRABert(nn.Module):\n",
    "    # 初始化函数\n",
    "    def __init__(self, rank=8, lora_alpha=32):\n",
    "        # 调用父类的初始化函数\n",
    "        super().__init__()\n",
    "        # 加载预训练的BERT模型\n",
    "        self.model = AutoModel.from_pretrained(\"bert-base-uncased\")\n",
    "        # 应用LoRA技术到BERT模型的查询投影和键投影\n",
    "        self._apply_lora(rank=rank, lora_alpha=lora_alpha)\n",
    "        # 定义一个线性分类器，用于最后的任务分类\n",
    "        self.classifier = nn.Linear(self.model.config.hidden_size, 1)\n",
    "\n",
    "    # 应用LoRA到BERT模型的辅助函数\n",
    "    def _apply_lora(self, rank, lora_alpha):\n",
    "        # 冻结预训练模型的参数\n",
    "        for param in self.model.parameters():\n",
    "            param.requires_grad = False\n",
    "        # 对BERT模型中的每一层应用LoRA，children()可以拿到每层的层对象\n",
    "        for layer in self.model.encoder.layer.children():\n",
    "            layer.attention.self.query = LoRALayer(layer.attention.self.query, rank=rank, lora_alpha=lora_alpha)\n",
    "            layer.attention.self.key = LoRALayer(layer.attention.self.key, rank=rank, lora_alpha=lora_alpha)\n",
    "\n",
    "    # 前向传播函数\n",
    "    def forward(self, input_ids, attention_mask, token_type_ids):\n",
    "        # 通过BERT模型进行前向传播\n",
    "        outputs = self.model(input_ids, attention_mask, token_type_ids)\n",
    "        # 提取[CLS]标记的表示作为特征\n",
    "        feature = outputs.last_hidden_state[:, 0, :]\n",
    "        # 使用分类器生成logits\n",
    "        logits = self.classifier(feature)\n",
    "        # 应用sigmoid激活函数得到最终的输出\n",
    "        return torch.sigmoid(logits).squeeze()\n",
    "\n",
    "# 实例化LoRABert模型\n",
    "lora_bert = LoRABert(lora_alpha=32)\n",
    "print(lora_bert)\n",
    "# 假设count_parameters是一个函数，用于计算并打印模型的参数数量\n",
    "count_parameters(lora_bert)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "# 假设train是一个函数，用于训练模型\n",
    "# training_record是一个字典，用于记录不同模型的训练结果\n",
    "# train_loader和val_loader是数据加载器，device是指定的设备（CPU或GPU）\n",
    "# num_epochs是训练的轮数，patience是早停的耐心轮数\n",
    "training_record[\"LoRA\"] = train(lora_bert, train_loader, val_loader, device, num_epochs=num_epochs, patience=patience)"
   ],
   "metadata": {
    "id": "jbzn6Do5C5Cj"
   },
   "execution_count": null,
   "outputs": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "05gNoMgxvBqY"
   },
   "outputs": [],
   "source": [
    "del lora_bert"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "plot_training_record(training_record, metric_name=\"val_acc\")"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 542
    },
    "id": "YZ_9dNmYnI6a",
    "outputId": "8c7b8368-1e43-42f7-bfc4-f5fe827d1ac2"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/IAAAINCAYAAACd0URAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADFD0lEQVR4nOzdd3wU170+/mdmm7oEqDd6E6KDRBUgigADwnFsjBPjEuOUS+wb4utrEtcUc3Pzu4QU3/jr2NhOcg24BWGDaRIgMBjRTBNFEkW9glZdOzszvz9WWlRWQisk7a70vF8vvbR7Znb2szoUPXPOnBFUVVVBRERERERERC5BdHQBRERERERERNRxDPJERERERERELoRBnoiIiIiIiMiFMMgTERERERERuRAGeSIiIiIiIiIXwiBPRERERERE5EIY5ImIiIiIiIhcCIM8ERERERERkQvROroAZ6QoCvLz8+Ht7Q1BEBxdDhEREREREfVyqqqisrISoaGhEMX2x9wZ5G3Iz89HRESEo8sgIiIiIiKiPiYnJwfh4eHt7sMgb4O3tzcAyw/Qx8fHwdW0TZIk7Nu3D4sWLYJOp3N0OdQG9pNrYD85P/aRa2A/uQb2k/NjH7kG9pNrcJV+qqioQEREhDWPtodB3obG6fQ+Pj5OH+Q9PDzg4+Pj1H8g+zr2k2tgPzk/9pFrYD+5BvaT82MfuQb2k2twtX7qyOXdXOyOiIiIiIiIyIUwyBMRERERERG5EAZ5IiIiIiIiIhfCIE9ERERERETkQhjkiYiIiIiIiFwIgzwRERERERGRC2GQJyIiIiIiInIhDPJERERERERELoRBnoiIiIiIiMiFMMgTERERERERuRAGeSIiIiIiIiIXwiBPRERERERE5EIY5ImIiIiIiIhcCIM8ERERERERkQthkCciIiIiIiJyIQzyRERERERERC5E6+gCiIiIyMXIEmCqBqRaQKpp8r0GQm0lQspPQcjQADo3QKMFxMYvHSBqAI2uSVvDV1ttguDoT0tEROR0GOSJiIh6E9lsDdV3Q3Zti+Bd0zyEW7fVAlKT/Uw1NsM6FHObb68FEAMAN7ro8whiwwmAxnDf4qSArZMA1ueau6+1+4RC09fqmj9vVYe2xfHaqa2t44mcJElERB3HIE9ERNRTFLl5KDa1CMg2g3XLbS0CesvgrUg993kEEdB5Ajp3y5feE4rWDeXGCvj5eENUzZbPrJgto/iKbKlPMTe0NXxvbLNFVQC53vLVmwli8xMDGq2dJxlsnaBo+4SCCAEjCm9A/PoaoDPYd4LC7hMgTY/HExZERF2BQZ6IiAgAFKX1SLXUJFC3MZW83RHtlsG7R8OoAOg8AL1HQ9D2aPJ1N3g33+Z+97u+SUDXebbY1rC/Rt9q6rssSTiyezeWLl0KUafreLmq2hDapSbhXm7yvMmXta3JiQHriYImJwbkpq9reTypxUmGlu/R4iSDrde2Wds96rD5+RVANlm+eoAGwGgAKPi8R97PynrCoiMnBtqbBWHHjAdbJxS6fYYGT1h0SOPf+8bvaPIctraptvdt97VtHcvWc7R4r3u8j6pCMEsIMn5ruZxIFO/xGdDBOlT7Pm+bPx979rW1va2fTQfr6FTN7fW/vXXc3VeryJgmBgJY2vV/jh2EQZ6IiJxfQ8jWmysBYw6gSu2PaNvcdo+p5Oa6nv1M1uDsaSNY2wje+pZhu8ljW9u0Bte6vlwQAEFjCUi9WasTFrZOUNg6MdDOTIaOnqBocgJENtcj5+YNRIaFQIRix8kTO0522Pz8PXvCwnGEdmZG3OMkQMNzDUTElJRB88nWhmPeK7igAyGos0Gu48H23gGySY29gBbANAC47uBCqF0CAIO7m6PL6FIM8kREdH9U1RKCmwVoGyParbbdayp5k9eYa6EDsAQALvTAZ9K6twjJ9zFq3XKb3gPQurlWyKau4yQnLBRJwrnduxFm78yJjmoMbh09QWH3jIqOztBo6wRIe7MxWtZ2j5kdtn8A933CQgQQAgDGTh+iDxAsszyEhu9Nnzfb1vK52M7zexy3xb4qBBiNFfDx6wdRFJtst/XajtbRiZrb/fx21tHpn13T/Tuyb8PMFZuf/x4/m3sdu8XPRjLLOH38FOK67c9iz2OQJyLqzdSGXyY7vJhZR6eStwjbPTiyomrdIDQNzM1GrTs6ot1iv6bbtO6cFkt0v5qesNAaHF1N92p1UqCjJyjan1FhNtXh0oVzGBM9FlqttosDlD1BrjMByp4gZ2v/jn4GxzNLEg535nIi6lmShCq3PEdX0aUY5ImIHEVVLb+82ZwS3sa08DYXOmtnVfLGKZc9QaNvY9q3nSPa+hb76TwhCVrs3n8ISx9YBh1/WSIiZyF2zwkLVZJws2AAoiYtBfhvHhG1wCBPRNQWa8i2YzGzjk4lbzymKvfc5xF1bYTkzlyHbWNEW+tuubazu0jS3Wl4RERERH0YgzxRX6IoluCoyC2+N7SrSottLZ/fq11t//j3arce1573VZpv71TtCrSKGfONZdBm/Acg1VkCd4/exkvTxgri7awsrm+xX7sj2h6WRZaIiIiIyOUxyJPz6Wjo69Ig1/jaewXFe7W3PoZGljAh+xY0O3fBslprZ4OsPZ+/jX2pTQIALwCwtS6RjXtld2xEu53rsFuGcq2+Zz8wEREREbksBnkXJmTsw8DSFIinCi1Lm3Y4/HXFaKqNY6iK/aG3VQjufWFTBDAQAG47uJCOEMS7ixNZv4stnjfcJ9XWfjb37eAxrPt09hjiPfZtv92sqDh28ltMj4uHzt2n+Yi2jXtlExERERE5CoO8CxNPvIUJOV8DOY6upIe1CmGNga5luLQVNu0Nofd/DFkFrl7LwMjRUdBo9V0cZFu8rtO1a5xqBVhHUCUJdy5XA8FjuagQERERETk1BnkXpoZPQ0F5HYJCQiFqtB0Mcu2EwW4Ksh0Op832aed9XYwiScio2I3h05dCw4BIRERERET3iUHehSlzNyCtZjzvW0lERERERNSHuN7wJhEREREREVEfxiBPRERERERE5EIY5ImIiIiIiIhcCIM8ERERERERkQthkCciIiIiIiJyIQzyRERERERERC6EQZ6IiIiIiIjIhTg8yL/11lsYNGgQ3NzcEBsbi7S0tDb3lSQJv/rVrzB06FC4ublh/Pjx2LNnz30dk4iIiIiIiMiVODTIb9++HevXr8drr72GM2fOYPz48UhISEBxcbHN/V9++WX8v//3//DnP/8Z6enp+NGPfoQHH3wQZ8+e7fQxiYiIiIiIiFyJQ4P8pk2bsHbtWjz11FOIiorC22+/DQ8PD2zZssXm/v/4xz/wi1/8AkuXLsWQIUPw4x//GEuXLsX//M//dPqYRERERERERK5E66g3NplMOH36NDZs2GBtE0URCxYswPHjx22+pr6+Hm5ubs3a3N3dcfTo0U4fs/G49fX11ucVFRUALFP5JUmy/8P1kMbanLlGYj+5CvaT82MfuQb2k2tgPzk/9pFrYD+5BlfpJ3vqc1iQLy0thSzLCAoKatYeFBSEK1eu2HxNQkICNm3ahLi4OAwdOhTJycn4/PPPIctyp48JABs3bsQbb7zRqn3fvn3w8PCw96P1uP379zu6BOoA9pNrYD85P/aRa2A/uQb2k/NjH7kG9pNrcPZ+qqmp6fC+DgvynfHHP/4Ra9euxahRoyAIAoYOHYqnnnrqvqfNb9iwAevXr7c+r6ioQEREBBYtWgQfH5/7LbvbSJKE/fv3Y+HChdDpdI4uh9rAfnIN7Cfnxz5yDewn18B+cn7sI9fAfnINrtJPjTPDO8JhQd7f3x8ajQZFRUXN2ouKihAcHGzzNQEBAdixYwfq6upQVlaG0NBQvPTSSxgyZEinjwkABoMBBoOhVbtOp3Pqjm7kKnX2dewn18B+cn7sI9fAfnIN7Cfnxz5yDewn1+Ds/WRPbQ5b7E6v12Py5MlITk62timKguTkZEyfPr3d17q5uSEsLAxmsxmfffYZEhMT7/uYRERERERERK7AoVPr169fjyeeeAJTpkxBTEwMNm/ejOrqajz11FMAgDVr1iAsLAwbN24EAJw4cQJ5eXmYMGEC8vLy8Prrr0NRFLz44osdPiYRERERERGRK3NokF+1ahVKSkrw6quvorCwEBMmTMCePXusi9VlZ2dDFO9OGqirq8PLL7+M69evw8vLC0uXLsU//vEP+Pn5dfiYRERERERERK7M4YvdrVu3DuvWrbO57dChQ82ez5kzB+np6fd1TCIiIiIiIiJX5rBr5ImIiIiIiIjIfgzyRERERERERC6EQZ6IiIiIiIjIhTDIExEREREREbkQBnkiIiIiIiIiF8IgT0RERERERORCHH77OSIiIiKi3kZVVSiyCtmsQJYUyGYF5obvilm1Pm66veljU70ZFVl6nN2bDVGjcfTHoTYossx+cgGKLKM6p3dF3971aYiIiIioz1JVFYqi3g3GktpmUG4M1opZgdxWsG7VprZ4nWLjdXff8/4ZcPLarS44DnWvvtNPqqo2Pmr4svW44bvaRnvL/VVAbesYTdtbvXc779/w3mqTdp1X74q+vevTEBEREVGPU+TmAVZuEXIV62O1zVDdNHyb291u+70aH1t/13cyoihAoxOh0YrQaJs8trbdfSxqAEFUkJ+fjbCwMAii0CwUqY2PG8OKeje8qLbaG9rUhn2sAcd6HDR/3uYx0WRb62O23FdtcryW76E2tDV/HQAorT5js7qbfXY0r01VbHzGlu/RuK1l3ZbXN/+M7fxMrc8V1NTUwN3dHUKzelq+B6A2fLZWP9N7vUeTz9Hez7S992j5Z6ZDP2ObfzZcl6oGAnjU0WV0GQZ5IiIiIhekKGobo8dth+XGkeTGadund9+CqgjtB+smo9WK2fYItKo45y/4QkN4FjWARgtotaolJGtUaDQKRFGFKCoQNA3fBctjQVCafQGN32XLYyhQIQOqDFVVGr43fCnmhu8yFNnyXJFlKLIZslmCbDZDMZshmWTUNzxvbLM8lqAqd0fz76Q76qdH9jAZHV2B6xAEERAs3wWh8bkAwfKkSVvzbUKzfYQ22wVBANBiXwD1Gp1jP3gXY5AnIiIi6iBVUSHLbY8Km21OybY9emw2K1Aar51uul8HR6KV+w7PBpy+lt35n4WqwhJs5YaRzIbvggxRo0KjUSFqVAiiArExKItNArNoCcwQFIhCQ0AWmhyzSViGqtwNyqoMKDIUxWwJy0pjWG4IzIoMxWx5bjabYWoIy72OIECAYBmtb/gu4N4hx3Z782DVLBAJIgQAgmhZI1sQLc8him28f+fCV2MdlszV5Hii7fe3PO+q92/83K3fv+n72np/RVWQnp6OMdHR0Gq0LX52th+39bkb+8FWmyDc4+feov870+93f24tg3TjPnb0ZXt/Nh1AkiTs3r3bIe/dXRjkiYiIyKmpqgqlybXJtkaMZUluFazb3vceU7vbGoGWFChy9408W4KxZfQXapMwq8pttDUJ0FAsgVlUIWosQVkUVQiCDDSGZlhCswBLGK6pqYKHh6HZe94dVZahqpagbBlZvhuaLYHZ3GzU2BVptFqIWh00Wq3lsabhe8Pz1ts10Gh17Wxv/fpW+7fap+3tigrsP3AAi5csgV6vaxWoyDlIkoR8WcT4hUuh0/WuEV9ybgzyRERE1C5FUWE2yZZRZEmB2SRbwm2T542P62tNqLqpw7nkXKBxynaTUWelWchufyGypiPQnaWqDSG1Sei1BuNmI8lyw7WlDSPAjcG2ZVvTfVW5YVRZhnUKtqBYA3NjwLaG8MbR5JaBucmock/ryunAgihC0xBsOxte29veKjg33V+jaWO7rlkIb2wXNRqnD8OSJEHUaqHV6aDRMiASUXMM8kRERC5EkZVWIbqtUG02yZbQbGp8jdzksQKzJDfs17Ctsd10d5tsansKt2UE2QyoZgBmqGrjYxnHL3xtY9S4YYo0WowwW9taTNGG3DC1ukWYbpyGjSYh3Rq8mwRlpXG762orvHY23DbuA0HE1WvXED12HPQGg12j0E2f3w3hGogib71FRNRTGOSJiIg6yd5Q3XRb01Btlpru19Wh2vJdbSNwN9vWYj+oDfvC3BCibbzexbQ5atxs5NbGqHAnwm3HR6FtB/XuHDWWJAnFu3dj/CJOByYickUM8kRE1Cu0G6ptBGx7Q7Xl8f2HarVJSG4duOUOhurGEO08oVrUaKHV66DR6SGZzfD09oFWd+9we3eqc9NQ3GJadAdHoZsfw0YQ12isC1YRERG5MgZ5IiLqco2h2mxquB76fkK1yXJttVRvRmmxBz67cMZyn+kmgbt7QnVjkJY7EKob95edKFTr737p9NDqDQ3PdZbHusbtlnaNdb+m+zY9ho22xv10eogay7TqxpWBly7lSC8REVF3YZAnIurlmobqZuH3XqG6xfXV1lDdNHDbOm67obrxWud7hGpbwbnhe3XTUet2Q3XjdHBnDtVN25q3a1q06Roea/S6FqHacDectwjVRERE1DsxyBMR9aCOhOoOjWJ3Wai+e+3z3VAtNSxSdu9Q3XwU+l6h2gxHLzzWPFQboNXpOhSqtXoDNE321TXZfjdw2x7J5gJgRERE1NUY5ImIANTXmCFViSjNrYKgis1DdWNI7lCobn59tfV5w/XV9w7VlmnZzUN1k8XG7hmqWyxi1jJUNwvsThaqm4Xo1mFb1GpxMycHI0ePhsHN3Rqgdfr2R7IZqomIiKi3YZAnoj4v62wx9m9Jhyx54vMjZ1uE6sbgK6N5qG6xMJmN0ejm2+R2tjlpqG4VrG2F7eYBumWobjmSbQnelunh9oZqSZJQtXs3YnntNREREfVxDPJE1KdlnUnHrr98DHNtBlS11ilCtUarbWNUuXF0uq2wbWvf7gnVREREROQ4DPJE1OdU3bmNK0cP4dLhFJTm3Gx3X41WazMA3x2dttHe5r6tR7KbXl/NUE1EREREHcEgT0R9gmSqR9bJb3ApNQW3zjVOnwcADXTuwzBnzXJcy8vG/IUL4ebhwVBNRERdTlEV1JnrUGuuRZ1ch1qp4bu5tll7nbkOVfVVuFB3AYWXCqHT6qARNBAFEaIgWh9bv4uaVu2CILTer5392339PfYXBRGCIDj6x0vUpzDIE1GvpSoK8q6k41JqCq59cxSm2hrrtn4hQ1FpHAyNfgQSfzYNwUO9cXO3Ed4D/Hn9NRFRH6SoCurlemuobgzW1tDdNGy3CN3W/cx1rfZtul+9XG93XQfOHeiGT9v1Wp5kaPOkgx0nB5o9F9s/8dDymAKEe5+wEFu/Z7uPbdSgyioypUycLDoJvVZvPaYI+2tu6/PzJAnZwiBPRL3OnYI8pB85iPTUg6goKbK2+wQEISouHqEjYrDvvTxoDQpilg9GxKj+kCTJgRUTEVF7VFVtFrJr5eahus5chxpzjTUwtxXCbYXrpgG8J7lr3eGmcYOb1s3yWOsGN43lsbvWHXpRj6L8IoSHh0MVVCiqAlmVoaiK5bEiN2tr+l1VVZvtimJ7f+sxm+yjQm32Hips33WlUeMxzDD30E/QuXyQ/EG3HVtA69kR9zo5YH1NB04m2Nqnq0/EtHfCoq06263hHp+r5YwURVZgUk3d1keOwCBPRL1CbVUlrh0/gkupKSi4dsXarnd3x4hpszEmLh5ho6IgmRR8svEUzJKCyKj+mLJkkOOKJiLqBVRVhUkx2R6Zlmpbh265xX6Nr7MRzpvu25MMGoPNcN1W6LY+17lb25vu665psp/WDQaNAaIgtluDJEnYvXs3lk5zjjt1dObkgM2TCvc6mdDGCYpmJxuafm/nhMa9Tk7YW4OtzyMrMsqN5fD09myzRlufvWn7vU6SqFBhVs2ACkevx+vSQjWhWImVji6jyzDIE5HLks1m3Dx3GpcOJ+P66TTIZssogCCIGDR+IqLi4jF06jTo9AYAll9CDv3zCsqLauDpZ8CCp6IgiJyuRkS9l6qqkBSp1XTwqroqZEqZOJR7CJIqtQrX9wrdzUa55Tooas+lC72ot4bkZoG5yeh2y7Btq91N6wYPrYc1XDc9xr1Cdl8kCAK0AqNDS9YTLvdxa1SeJLlHLXbMJGnvJImA3vU7H/82EpFLUVUVxTeycCk1GVeOHkZtZYV1W8DAwYiKi8eomXPg1a9/q9deSs1DxqliiKKAhLXRcPfW92TpREStSLJkHYluNR1csnENdkevyW5orzPXQVbltgtI7drPoxN1zUNzi6nj7hp366h1Y4D20Hq03k/bfGS7cT+DxgANFyGlXoYnSbpP48mOelM9vtrzlaPL6VL8E0NELqGyrBSXjx5CemoKynKzre0evn4YPXseombPQ+CgIW2+vvhWBY58kgEAmPbgUIQM9e32monItZkVc/ORaNnGdHAb11q3bG9v6rhZ7bnribWiFu6auyPSUo2EgH4B8NB5NAvMTUN3s6nkLUK3rcCuFfmrJRE5j8aTJKpGhU5w/CUqXYn/2hKR0zLV1SIz7TgupaYg++I5QLVMj9Lq9Bg6dRrGxMVj4LiJEDXtj87UVUvY885FKGYVg8f7Y8KCiJ4on4i6kazI95z2fa8Q3taiaY2h26z0XMjWCJpW11pbQ3eLad9Np4O3d/12s/20btCJd3+JtU4HTnCO66+JiMg+DPJE5FRURUFO+gVcOpyMjBPHINXfXUU4fHQ0ouLiMWLaTBg8PDt2PFVFyt8vo7KsDj7+bpj/xGjexoWomymqghqpBmazue1rrdu5h/a9rsmuNddCUnruThOiIN7zWuumI9NNp47bmmJuayE0rajlv01ERNRhDPJE5BTKcnOQfiQFl48cQmVZibXdLzgEUXHxiJo9D76BwXYf99v9ObhxrhSi1nJdvMHj7shTeV05UvNScTD7IL4p+AY1Ug1e2/paV3wc6iaqqrKPXICsynj1k1d75L0ECO1fk23jWutmobuN9qbPdaKOIZuIiJwKgzwROUxNhRFXj6UiPTUFhVkZ1naDpydGzYhDVFw8QoaP6vQv0AWZ5Ti+IwsAMPuREQgc6IO8qjwczD6IlJwUnCk603oRqPbvAEPOgH3kUmwF5pZTx9u8nVdjmNa0EcJ1lnttM2QTEVFfwyBPRD3KLEm4ceYkLqWm4MbZk1BkS5AWNRoMmjAZY+LiMWRSDLT6+1tRvrbShL3vXoKqqAga74bD3jvw2s4UXLtzrdl+I/qNwLyIeZgdMhsXjl9A/Px46LS8XtQZSWYJKckp7CMnJ5klHEo+hGWLl8HbzZshm4iIqBswyBNRt1NVFYWZ13DpcDKuHktFXXWVdVvQkGGWW8bNiIOHr1+XvF+92YRP/noM1eUKKj1K8a7hdzCfNwGwLCg1KWgS5kXMw7yIeQj3DgdgWfjppngTAe4BXPjJSUmSBG/Rm33k5CRJgqfoCXetO0M8ERFRN2GQJ6JuU1FSjPQjB5GemoI7BXnWdq/+A6y3jPOPGNgl71UtVeNo3lGkZKfgztdajL81H5JYj93D/wadQYO5oQswL3Ie4sLi4Ofm1yXvSURERETkCAzyRNSl6mtqkHHia6SnpiAn/YK1XWswYHjMDIyJm4+I6LEQxfZvGdcRJTUlOJhjud49rSANkiIhrHwElt36MQCgdvoN/Hruy4gNiYWb1u2+34+IiIiIyBkwyBPRfVMUGdnnv8Wl1BRknvwGZlO9ZYMgIHLMWETFzcfwmOnQu3vc1/uoqorrxuuW8J6dggulF5ptH6kfg7k3noIAEaNmBmP+4/H39X5ERERERM6IQZ6IOq00+yYupabg8tFDqL5z29reLzQcY+LiMXr2XPj4B97Xe8iKjHMl53Aw5yAO5hzErYpbzbaPCxiHeRHzMDdsHs5vKUdBnRH+EV6Ys2rkfb0vEREREZGzYpAnIrtUl9/Bla8tt4wrvpllbXfz9sGoGXEYExePoKHD72uRqzpzHb4p+AYp2Sk4nHsYt+vuniTQiTpMC5mGeZHzMDd8LgI8AgAAxz7PREGmETo3DRLWRkOrv/+p+0REREREzohBnojuyWwyIev0CaSnpuDGt6ehKgoAQNRoMWTSVIyZMx+DJ06G5j5uCVZeV47DuYeRkp2C4wXHUWuutW7z1nsjLjwO8RHxmBk2E546z2avvXGuBGf3ZQMA5q8ZDb/A+5vCT0RERETkzBwe5N966y38/ve/R2FhIcaPH48///nPiImJaXP/zZs3469//Suys7Ph7++P7373u9i4cSPc3CwLWb3++ut44403mr1m5MiRuHLlSrd+DqLeRlVV5F+9jEupybh2/Cjqa6qt20KGjURUXDxGzpgNd2+fTr9HTmUODmZbpsyfKT4DRVXuvodnCOZFzEN8ZDwmBU2CTrR9kqCitBbJH14GAIyLD8fQSfc3lZ+IiIiIyNk5NMhv374d69evx9tvv43Y2Fhs3rwZCQkJuHr1KgIDW/8y/tFHH+Gll17Cli1bMGPGDFy7dg1PPvkkBEHApk2brPuNGTMGBw4csD7Xah1+voLIZZQXFSI9NQXpR1JgLCq0tnv7ByBqdjyi4uahf2h4p46tqirSb6cjJTsFB3MOIuNORrPto/qPsob3kf1G3nN6viwp2Pu3i6ivMSNosA9mfGdYp+oiIiIiInIlDk24mzZtwtq1a/HUU08BAN5++23s2rULW7ZswUsvvdRq/2PHjmHmzJl47LHHAACDBg3C6tWrceLEiWb7abVaBAcHd/8HIOol6qqrcO2bo0hPTUHelXRru87NHSOmzcSYuHiEj46GIIp2H1uSJZwsOomU7BQcyjmEopoi6zaNoMHkoMmIj4zH3Ii5CPMKs+vYX3+ageJblTB4apGwNhoarf31ERERERG5GocFeZPJhNOnT2PDhg3WNlEUsWDBAhw/ftzma2bMmIF//vOfSEtLQ0xMDK5fv47du3fj8ccfb7ZfRkYGQkND4ebmhunTp2Pjxo2IjIxss5b6+nrU19dbn1dUVAAAJEmCJEn38zG7VWNtzlwjOW8/yWYzsi98iytHD+H6mTTIDfUJgoiI6HEYPXsehkyOhc5gAACYZRmQ5Q4du0qqwtf5X+Nw7mEczT+KKqnKus1d644ZITMwN3wuZoXOgq/B17rNnp9R1ukSXDicBwCY9/hIuHlr7utn7Kz9RHexj1wD+8k1sJ+cH/vINbCfXIOr9JM99QmqqqrdWEub8vPzERYWhmPHjmH69OnW9hdffBGHDx9uNcre6E9/+hNeeOEFqKoKs9mMH/3oR/jrX/9q3f7VV1+hqqoKI0eOREFBAd544w3k5eXh4sWL8Pb2tnlMW9fVA5ap/B4eXDSLeg9VVWEqv42K69dQdSsLct3dBeX0vv3gPXg4vAcNg9bDs52j2FahVOCydBlXpCu4br4OGXdDv5fghVG6URitG40h2iHQCZ1fFA8ApCoBxcc8ocoCvIfWw3eE6b6OR0RERETkaDU1NXjsscdgNBrh49P+OlQudfH4oUOH8Oabb+J///d/ERsbi8zMTDz//PP49a9/jVdeeQUAsGTJEuv+48aNQ2xsLAYOHIiPP/4YP/jBD2wed8OGDVi/fr31eUVFBSIiIrBo0aJ7/gAdSZIk7N+/HwsXLoROd3/BiLqPM/RT1Z3buHYsFZePHkJZzt37sLv7+GDkjDkYNWsuAgYOtuuWcaqq4rrxOg7mHsTh3MO4VH6p2fZBPoMwN3wu5oTNwVj/sRCFrpn2bjbJ+Nf/9y1UuQYhw3zxwLqxEDWdv9VdI2foJ2of+8g1sJ9cA/vJ+bGPXAP7yTW4Sj81zgzvCIcFeX9/f2g0GhQVFTVrLyoqavP69ldeeQWPP/44nnnmGQDA2LFjUV1djWeffRa//OUvIdq4ftfPzw8jRoxAZmZmm7UYDAYYGqYPN6XT6Zy6oxu5Sp19XU/3k1Rfh8yT3yA9NQW3zn8LtWFFeI1Oh6FTpmFMXDwGjpsIjR2LQcqKjG9LvrUuVpdTmWPdJkDAuIBxiI+Mx7yIeRjsO7jLPxMApG7NxJ2CGrj76JGwNhoGN32XHp9/n5wf+8g1sJ9cA/vJ+bGPXAP7yTU4ez/ZU5vDgrxer8fkyZORnJyMlStXAgAURUFycjLWrVtn8zU1NTWtwrpGowFgGR20paqqCllZWa2uoyfqjVRFQe7li7iUmoKME1/DVHt36nzoyCiMmROPEdNmwc3Tq8PHrDXX4nj+cRzMOYjDOYdxp/6OdZte1GNa6DTER8RjTsQc+Lv7d+nnaenysXxcOVYAQQAW/WAMPH1bn4AjIiIiIurtHDq1fv369XjiiScwZcoUxMTEYPPmzaiurrauYr9mzRqEhYVh48aNAIDly5dj06ZNmDhxonVq/SuvvILly5dbA/0LL7yA5cuXY+DAgcjPz8drr70GjUaD1atXO+xzEnW32/l51lvGVZaWWNt9A4MQFRePqNnx8AsO6fjx6m7jcM5hHMw5iOP5x1En11m3+eh9MCd8DuZFzsPM0Jnw0PXMOhKluVU4vPUaACBm+RCEj+zXI+9LRERERORsHBrkV61ahZKSErz66qsoLCzEhAkTsGfPHgQFBQEAsrOzm43Av/zyyxAEAS+//DLy8vIQEBCA5cuX47e//a11n9zcXKxevRplZWUICAjArFmz8M033yAgIKDHPx9Rd6qtqsTVY0eQnpqMgoyr1na9uwdGzpiNqLh4hI2M6vB179kV2TiYcxAp2Sn4tuRbKA1T8QEg1DPUOmV+UtAkaMWe/afDVGvGnncuQJYURI7pj8mLB/bo+xMREREROROHL3a3bt26NqfSHzp0qNlzrVaL1157Da+99lqbx9u2bVtXlkfkVGSzhBtnTyM9NQVZp9OgyGYAgCCKGDxhMqLi4jFkcgx0+ntPOVdUBell6dbr3TPLm68jMbr/aMyLnIf4iHiM6DfCroXwupKqqjj4zyswFtfCq58BC56KgiA6phYiIiIiImfg8CBPRO1TVRVFWRm4lJqCK8dSUVd5dzXLgEFDMCYuHqNmzoGn372nmkuyhLTCNBzMOYiD2QdRXFts3aYVtJgcPBnzIuZhXsQ8hHqFdsvnsdeFQ3nIPF0MURSQsDYa7l5du7gdEREREZGrYZAnclIVpSW4fPQQ0lNTcDvv7urwnn79MHr2PETNnoeAgfdeGb7SVIkjuUdwMOcgjuYdRZVUZd3mofXArLBZmBc5D7PDZsPX4Nstn6Wzim5W4OtPMwAAMx4ahuAhzlUfEREREZEjMMgTORFTXS0yThxDemoKsi+dBxruxqDVGzBsquWWcZFjJ0BsWNyxLYXVhdZR95NFJ2FWzNZt/u7+1lH32JBY6DXOOcJdVy1h7zsXocgqhkwMwLj4cEeXRERERETkFBjkiRxMUWTkXLyA9NRkXEs7BnN9vXVbRNRYRMXFY3jsTBg82l4dXlVVZJRn4GD2QaTkpCC9LL3Z9iG+Q6yL1UX7R0MUxDaO5BxURUXyB+movF0HnwB3xK8Z7bBr9ImIiIiInA2DPJGDlOVm41JqCi4fOYiq22XW9n4hoYiaHY/Rs+fBNzCozdebFTPOFp+1jrznVuVatwkQMCFwgnXkfZDvoO78KF3u7P5s3LxQBo1WxOK10TC4858qIiIiIqJG/O2YqAfVVBhx5etUpKcmo+j63VXi3Ty9MHJGHKLi4hEyfGSbo881Ug2O5x9HSk4KUnNTUV5fbt1m0BgwPWQ65kXOQ1x4HPzd/bv743SL/Iw7+CbpOgBg9qrhCIj0dnBFRERERETOhUGeqJuZJQlV2TfwxaY3cevcGSiyDAAQNRoMnjgVY+LiMXjSVGh1OpuvL6stQ2puKlKyU3C84Djq5btT730NvpgTPgfxEfGYHjodHrq2p9+7gpoKE/a+ewmqomJEbBCiZjnHyvlERERERM6EQZ6oG6iqioKMK0hPTcGVY0dQX313pfjgocMRFRePkTPi4OFjexX2WxW3rNe7f1v8LVSo1m1hXmGYFzEP8ZHxmBg4EVqxd/w1VhQV+7dcQo3RhH4hnpj72CheF09EREREZEPvSABETsJYXIT0IylIT01BeWGBtV3r4Ynx8xMwdu5CDAiPaPU6RVVwsfSi9Xr3LGNWs+1RA6Ks4X243/BeGXBP7rqB3Ct3oNVbrovXGdpfmZ+IiIiIqK9ikCe6T/U1Nbh24ijSD6cg9/JFa7vO4IbhsTMwcsYcnL+ZjZnLlkHXZPq8STYhrTANKdkpOJRzCCW1JdZtWkGLqcFTMS/SslhdsGdwT36kHpedXoZTu28CAOZ+bxT6h3o6tiAiIiIiIifGIE/UCYos49aFb5GemoLMtOMwSybLBkFAZPR4jImLx7CY6dC7uUOSJFzItqwoX2GqwJHcI0jJTsHX+V+jWqq2HtNT54lZYbMQHxGPWeGz4KP3ccRH63FVd+qwf0s6oAJjZodiZGzvPmlBRERERHS/GOSJ7FBy6wYupabgytFDqC6/Y23vHxaBMXPmY/SsufAe0Hy1+MLqQnxT/w2+SPkCp4tOw6yardsC3QMxN2Iu4iPjMTV4KvQafY99Fmcgywr2/u0S6qok+Ed4YdYjwx1dEhERERGR02OQJ7qH6vI7uHz0ENJTU1By64a13d3bB6NmzsGYOfMROHio9bp1VVVx7c41pOSk4GD2QVy+fdnyglrLt2F+w6zXu0cNiIIoiD39kZzGNzuuo/C6EXp3LRY/Gw2tjtfFExERERHdC4M8kQ2SqR5Zp04g/XAybp4/C1VRAAAarRZDJscgKm4+Bk+YBI3Wcs27WTHjbNFZpGSn4GDOQeRV5VmPJQoiIsQIfGfcd7Bg0AJE+kQ65DM5m+vfluDb/dkAgPlrRsM3wLVvnUdERERE1FMY5IkaqIqCvKvpSE9NwdXjR2GqrbFuCxkxCmPi4jFi+my4e3kDAGqkGhy7dRgp2SlIzUuFsd5o3d+gMWB66HTER8RjZvBMHE85jqWjlzZb7K4vM5bUIvlDy0yF8fMjMGRigIMrIiIiIiJyHQzy1OfdKcxHeupBXD6SAmNxkbXdJyAQUXHxiJo9D/1CwgAApbWl2H1tHw7mHMTx/OMwKSbr/n4GP8wJn4P4yHhMD50Od607AECSpJ79QE7OLMnY+7eLMNWaETzEB9O/M9TRJRERERERuRQGeeqT6qqqcPX4EaSnpiD/2mVru97dHSOmzcKYuPkIGxUFQRRx03gT/7q4BQezD+JcyTmoUK37h3uFIz4yHvMi5mFC4ARoRf6VupevP8lESXYl3Dx1WPRMNDSavrtGABERERFRZzB1UJ8hm824ee4M0g8nI+v0Cchmy+rxgiBi4PiJiIqLx7ApsdDo9bhQegGfnP0jDuYcxA3jjWbHGTNgjDW8D/MbZl3kju7tWlohLqbmAQKw4OkoePd3c3RJREREREQuh0GeejVVVVF8IwvpqSm4/PVh1FbcvY7dP3IQxsTFY9SsudD5eOJEwQl8fOZ3OJRzCKW1pdb9tKIWMcExiI+Ix9yIuQjyDHLAJ3F9dwqrcfD/rgIApiwZhIFjBji4IiIiIiIi18QgT71S5e1SXD5iuWVcWW62td3D1w+jZ81FVFw8DCEDkJqbio/O/QZf532NGvPdxe28dF6YHTYb8yLnYVbYLHjrvR3wKXoPqV7GnncuwlwvI2ykH6YuG+zokoiIiIiIXBaDPPUaUl0dMk4eR3pqCm5d+BZQLdeya3Q6DJsyDVFz4qEfEozD+an459U3cSr1FGRVtr4+0CPQcn/3iHhMDZ4KnYYrzHcFVVVxeOtV3M6vhoePHgufHgNR5OUIRERERESdxSBPLk1VFOSkX0R6agqunfgaUl2tdVvYqDGIipsHYWQQjpQex4c5/40r5680e/0wv2GIj4xHfEQ8ogZE8Xr3bnD5WAGuflMIQQAWPTMGnr4GR5dEREREROTSGOTJJZXl5eDykYNITz2IyrISa7tfUAhGzp4DeZQ/jtd+i/ez/4D85HzrdlEQMTFwonXkPcInwhHl9xmluZVI3XYNABCbOARhI/o5uCIiIiIiItfHIE8uo7ayAleOpSI9NQWFmdes7QZPTwyNnY66kf2QJl7Glry/ouJMhXW7m8YNM0JnYF7kPMwJn4N+bgyTPaG+1ow9/+8iZEnBwOgBmLRooKNLIiIiIiLqFRjkyanJZgnXz5xEemoKrp85BUVuuGWcKCJs7FjUjfJDmsd1vF/yD5humayv62foh7kRczEvYh6mhU6Du9bdUR+hT1JVFQf/cRnGklp49TdgwZNREHhdPBERERFRl2CQJ6ejqioKs64hPTUFV75ORV1VpXWbX2Q46kf1wwm/m/ig6guolSrQsDnSO9J6f/fxAeOhETUO+gR0/mAuss6UQNQISFgbDTcvLhxIRERERNRVGOTJaVSUFuPykUO4lJqCO/m51naDrzfqR/bDyf7ZuCR+bWmssnwb6z/Wcr17ZDyG+A7hYnVOoPCGEcc+ywQAzHhoGIIH+zq4IiIiIiKi3oVBnhzKVFuDayeOIT01BTmXzlvbRZ0O9UO9cWpAHq753ILakM+1ohaxIbGIj4jH3Ii5CPQIdFDlZEtdlYS9f7sIRVYxdFIAxs0Ld3RJRERERES9DoM89ThFkZF94RzSU1OQkXYcZlO9dVtdqDvOBRYhI7AcZq3lPvDeOm/MDp+NeZHzMCt0Frz0Xo4qndqhKioOfJCOqtv18A1wx7zHR3OGBBERERFRN2CQpx5TmnML6akpuHzkIKru3La21/tqkB58G5mhlah2lwEAQR5B1uvdpwRNgU7Da6yd3Zl9t3DrYhk0OhGLfxgNgzv/eSEiIiIi6g78TZu6VY2xHFe+PoxLqSkovpFlbZf0QGZIBbLCqlHqawIEYES/Edbr3Uf352iuK8m7dgcnkq4DAOIeHQH/cG8HV0RERERE1HsxyFOXM5tMyDqdhvTUZNz49jRURQEAKIKKnMBaZIVVITewFtCImBw0GU9HzMO8iHkI9+b11K6o2liPfe9egqoCI6cFY/SMEEeXRERERETUqzHIU5dQVRX5Vy9bbhl3PBWmmhrrthLfemSFVeFGaA1EDwNmhM7ADyPjERcWBz83P8cVTfdNUVTs33IJNRUm9A/1xJzVIzmTgoiIiIiomzHI030pLyrE5SMHceHwflQWF1vbq9zMyAqrxvWwKmj8fTA3YhHWRcQjNiQWblo3B1ZMXenklzeQd7UcWoMGi5+Nhs6gcXRJRERERES9HoM82a2+phpXjx/BmZSvUJbZ5Lp3jYKbwTXICq+CYVAw4iMfxPrIeIz1HwuNyIDX29y6VIZTu28CAOZ9fyT6BXs6tiAiIiIioj6CQZ46RJFlXP/2FI4f+BeKz6cDZst17ypU5PvXISusGj5jhmDOkO/gxYh4DPYdzCnWvVjl7Toc2JIOAIiOC8OIqcEOroiIiIiIqO9gkKd25WRexqG921B46hzEGrO1/Y6XCTfD6+A3aSTmjF6EDeFzEeAR4MBKqafIsoJ9715EXbWEgEhvzHp4uKNLIiIiIiLqUxjkqZX8whvYt+efKEg7C32ZCQAgAqjVy8gNl+A/ZQxmT1qKDeGz4KnjdOq+5vjnWSi8XgG9uxYJa6Oh0YmOLomIiIiIqE9hkCcAwI3SLOxP3or8E6fhmWeCCAF6ALKooiRUwYAp0Zg/+0FMCZ0KnahzdLnkINfPluBccg4AYP4To+Eb4O7gioiIiIiI+h4G+T5KVVVcKr2I5GOfI+/EafS7ZYbeLMIbACCgIkDEgMlRWLjgYYwNn8Tr3QnGkhokf2i5Ln7CwkgMmcBLKYiIiIiIHIFBvg+RZAkni07i0LndyPnmFIJvAV61WgQBAESYvET0mxyFuQmrMGroRAdXS87ELMnY885FmOpkhAz1xbSVQxxdEhERERFRn8Ug38tVmapwNO8oDmbsR+7JMwjP1iCw3A3DGrpe0YvwGzcCcQkPY0T0VAgir3em1o5+nIHSnCq4eemw6Jkx0Gj454SIiIiIyFEc/tv4W2+9hUGDBsHNzQ2xsbFIS0trd//Nmzdj5MiRcHd3R0REBH72s5+hrq7uvo7Z2xRVF2H7le340Z4fYvUfF2LX5t9hwPtXMOm8JwLL3aAKgO/oIUj46Xr8+3ufYO1//H8YOS6WIZ5sunqiEJeO5AMCsPDpKHj1c3N0SUREREREfZpDR+S3b9+O9evX4+2330ZsbCw2b96MhIQEXL16FYGBga32/+ijj/DSSy9hy5YtmDFjBq5du4Ynn3wSgiBg06ZNnTpmb6CqKjLvZCIlJwUHb6Wg4HoGhuZ5YkiBJ4abBlj38woPweR5SzF61lx4+vVzYMXkKm7nV+PQ/10BAExZOgiRUQPu8QoiIiIiIupuDg3ymzZtwtq1a/HUU08BAN5++23s2rULW7ZswUsvvdRq/2PHjmHmzJl47LHHAACDBg3C6tWrceLEiU4f01WpqoozxWfwVe1XePuLt3G7pABD8z0xLM8TU6pCrPsZfHwQHTcfY+LiETBwsAMrJlcj1cvY884FmE0Kwkf1w9QH+OeHiIiIiMgZOCzIm0wmnD59Ghs2bLC2iaKIBQsW4Pjx4zZfM2PGDPzzn/9EWloaYmJicP36dezevRuPP/54p48JAPX19aivr7c+r6ioAABIkgRJku7rc3an//r6t1CuFyMq1xMhZWEQYFlZXqPTYeiUaRg1ay4io8dD1GgAwKk/S2/W+HN3pZ+/qqo4+M9ruFNYAw8fPeY+PgKybIYsO7qy7uOK/dTXsI9cA/vJNbCfnB/7yDWwn1yDq/STPfU5LMiXlpZClmUEBQU1aw8KCsKVK1dsvuaxxx5DaWkpZs2aBVVVYTab8aMf/Qi/+MUvOn1MANi4cSPeeOONVu379u2Dh4eHvR+tR6iqiml7NNBW+1vb3AJD4DN4OLwiB0PR6ZGeV4j0vEIHVklN7d+/39EldFhVtg7ll9wAQYXn6HIcOnrA0SX1GFfqp76KfeQa2E+ugf3k/NhHroH95BqcvZ9qamo6vK9LrVp/6NAhvPnmm/jf//1fxMbGIjMzE88//zx+/etf45VXXun0cTds2ID169dbn1dUVCAiIgKLFi2Cj49PV5TeLTzL8nH5+FFMXLAEUXHx8AnonWsAuDpJkrB//34sXLgQOp3O0eXcU2lOFZL2fwtARcyKwZiwIMLRJfUIV+unvoh95BrYT66B/eT82Eeugf3kGlylnxpnhneEw4K8v78/NBoNioqKmrUXFRUhODjY5mteeeUVPP7443jmmWcAAGPHjkV1dTWeffZZ/PKXv+zUMQHAYDDAYDC0atfpdE7d0TNXrUH1gFBMe+ABp66TLJz9zxMA1NeaceD9K5DNKgaNHYApCYMhiIKjy+pRrtBPfR37yDWwn1wD+8n5sY9cA/vJNTh7P9lTm8PuN6bX6zF58mQkJydb2xRFQXJyMqZPn27zNTU1NRBb3CJN03D9t6qqnTqmK9MZDBCEvhWyqPuoqoqUDy+joqQW3v3dMP/JqD4X4omIiIiIXIFDp9avX78eTzzxBKZMmYKYmBhs3rwZ1dXV1hXn16xZg7CwMGzcuBEAsHz5cmzatAkTJ060Tq1/5ZVXsHz5cmugv9cxici28ym5uP5tCUSNgIRno+Hm6bxnK4mIiIiI+jKHBvlVq1ahpKQEr776KgoLCzFhwgTs2bPHulhddnZ2sxH4l19+GYIg4OWXX0ZeXh4CAgKwfPly/Pa3v+3wMYmotcLrRhz7LBMAMPO7wxE0yHnXhiAiIiIi6uscvtjdunXrsG7dOpvbDh061Oy5VqvFa6+9htdee63TxySi5mqrTNj7t4tQFBXDJgdi7NwwR5dERERERETtcNg18kTkeKqi4sD76ai6Uw+/IA/Me3wU110gIiIiInJyDPJEfdjpPbeQfek2NDoRCWujoXdz+CQdIiIiIiK6BwZ5oj4q9+odpH1xHQAwZ/UI+Id7ObgiIiIiIiLqCAZ5oj6o2liPfe9dgqoCo2aEYPSMUEeXREREREREHcQgT9THKLKCfe9eQm2FCQPCPBH36AhHl0RERERERHawO8hfv369O+ogoh5y4osbyM8oh86gQcLaaOj0GkeXREREREREdrA7yA8bNgzz5s3DP//5T9TV1XVHTUTUTW5eKMWZPbcAAPMeH4V+wZ4OroiIiIiIiOxld5A/c+YMxo0bh/Xr1yM4OBg//OEPkZaW1h21EVEXqrxdhwMfpAMAxs4Jw/ApQQ6uiIiIiIiIOsPuID9hwgT88Y9/RH5+PrZs2YKCggLMmjUL0dHR2LRpE0pKSrqjTiK6D7JZwd6/XUR9tRmBA70x87vDHV0SERERERF1UqcXu9NqtfjOd76DTz75BL/73e+QmZmJF154AREREVizZg0KCgq6sk4iug/HPs9E0Y0KGDy0SFgbDY2O61wSEREREbmqTv82f+rUKfzkJz9BSEgINm3ahBdeeAFZWVnYv38/8vPzkZiY2JV1ElEnZZ4uxvmUXADA/Cej4OPv7uCKiIiIiIjofmjtfcGmTZvw/vvv4+rVq1i6dCn+/ve/Y+nSpRBFyzmBwYMH44MPPsCgQYO6ulYislN5UQ1S/nEZADBxUSQGj/N3cEVERERERHS/7A7yf/3rX/H000/jySefREhIiM19AgMD8d577913cUTUeWaTjD1/uwipTkbIMF9MSxzi6JKIiIiIiKgL2B3kMzIy7rmPXq/HE0880amCiKhrHNl+DWW5VXD31mHRD6IhanhdPBERERFRb2D3b/bvv/8+Pvnkk1btn3zyCT788MMuKYqI7s+VbwqQ/nUBIAALnx4Dr34GR5dERERERERdxO4gv3HjRvj7t77ONjAwEG+++WaXFEVEnVeWX4XDH10FAMQsG4yI0f0dXBEREREREXUlu4N8dnY2Bg8e3Kp94MCByM7O7pKiiKhzTHVm7H3nIswmBRGj+2HykkGOLomIiIiIiLqY3UE+MDAQ58+fb9V+7tw5DBgwoEuKIiL7qaqKQ/93FXcKa+DpZ8DCp8dAFAVHl0VERERERF3M7iC/evVqPPfcczh48CBkWYYsy0hJScHzzz+PRx99tDtqJKIOuHQkHxkniyCIAhY9Mwbu3npHl0RERERERN3A7lXrf/3rX+PmzZuYP38+tFrLyxVFwZo1a3iNPJGDFN+qwJGPrwEApq8citBhfo4tiIiIiIiIuo3dQV6v12P79u349a9/jXPnzsHd3R1jx47FwIEDu6M+IrqH+hoJe/92EYpZxeDx/piwMMLRJRERERERUTeyO8g3GjFiBEaMGNGVtRCRnVRVRfKHl1FRWgfvAW6IXzMagsDr4omIiIiIerNOBfnc3Fzs3LkT2dnZMJlMzbZt2rSpSwojonv79kAObpwrhagVsPjZaLh56hxdEhERERERdTO7g3xycjJWrFiBIUOG4MqVK4iOjsbNmzehqiomTZrUHTUSkQ0FmeU4/q8sAMDsh4cjcKCPgysiIiIiIqKeYPeq9Rs2bMALL7yACxcuwM3NDZ999hlycnIwZ84cPPzww91RIxG1UFtpwt53L0FVVAyfEogxcWGOLomIiIiIiHqI3UH+8uXLWLNmDQBAq9WitrYWXl5e+NWvfoXf/e53XV4gETWnKCr2v5+O6vJ6+AV5YO73R/G6eCIiIiKiPsTuIO/p6Wm9Lj4kJARZWVnWbaWlpV1XGRHZdPqrm8hJvw2tTsTiZ6Ohd+v0mpVEREREROSC7E4A06ZNw9GjRzF69GgsXboUP//5z3HhwgV8/vnnmDZtWnfUSEQNcq7cRtqXNwAAcx4biQFhXg6uiIiIiIiIeprdQX7Tpk2oqqoCALzxxhuoqqrC9u3bMXz4cK5YT9SNqsvrsf+9S4AKjJ4ZglHTQxxdEhEREREROYBdQV6WZeTm5mLcuHEALNPs33777W4pjIjuUmQFe9+9iNpKCQPCvBC3aoSjSyIiIiIiIgex6xp5jUaDRYsW4c6dO91VDxHZcGLndRRkGqFz02Dxs9HQ6jWOLomIiIiIiBzE7sXuoqOjcf369e6ohYhsuHm+FGf2ZgMA4h8fDb8gDwdXREREREREjmR3kP/Nb36DF154AV9++SUKCgpQUVHR7IuIuk5FaS0OfJAOABg3LxzDJgc6uCIiIiIiInI0uxe7W7p0KQBgxYoVze5draoqBEGALMtdVx1RHyZLCvb+7SLqa8wIHOSDGQ8Nc3RJRERERETkBOwO8gcPHuyOOoioha8/y0TxrUoYPLRIWDsGGq3dE2iIiIiIiKgXsjvIz5kzpzvqIKImMk4V4cKhXADAgqei4DPA3cEVERERERGRs7A7yKempra7PS4urtPFEBFQXlSDg/+8AgCYlDAQg8b6O7giIiIiIiJyJnYH+blz57Zqa3qtPK+RJ+o8ySRjzzsXINXJCB3uh9gVgx1dEhERERERORm7L7q9c+dOs6/i4mLs2bMHU6dOxb59+7qjRqI+48i2ayjLq4a7tw6LnhkDUcPr4omIiIiIqDm7R+R9fX1btS1cuBB6vR7r16/H6dOnu6Qwor7m8rECXD5WAEEAFv1gDDx9DY4uiYiIiIiInFCXDfcFBQXh6tWrXXU4oj6lLK8KqVstf39ilg9G+Kj+Dq6IiIiIiIicld0j8ufPn2/2XFVVFBQU4L/+678wYcKErqqLqM8w1Zmx552LMEsKIqP6Y/LiQY4uiYiIiIiInJjdI/ITJkzAxIkTMWHCBOvjpUuXwmQy4d133+1UEW+99RYGDRoENzc3xMbGIi0trc19586dC0EQWn098MAD1n2efPLJVtsXL17cqdqIupOqqjj4zysoL6qBVz8DFjwdBUEU7v1CIiIiIiLqs+wekb9x40az56IoIiAgAG5ubp0qYPv27Vi/fj3efvttxMbGYvPmzUhISMDVq1cRGBjYav/PP/8cJpPJ+rysrAzjx4/Hww8/3Gy/xYsX4/3337c+Nxh4vTE5n4uH85B5qhiiKGDRM9Fw99I7uiQiIiIiIqekqiogy1BlGapkhiJJkCQJUn3Dl8kEySRBMpkhmyzbzCYJ9bV1KM/MdXT5XcruID9w4MAuLWDTpk1Yu3YtnnrqKQDA22+/jV27dmHLli146aWXWu3fv3/za4e3bdsGDw+PVkHeYDAgODi4S2sl6kpFNytw9JMMAMD07wxFyNDWC0kSEREREd1Ly4AL2QzVbIZqlps9Vs2SZb9mj+/up0gSZMkMs0mCWTJDbgjCjW1KQ5ssmaGYLftbvjc8N5uhSuaGOiSosmx5j4aaYDYDigyYZQiyGVAUCLIZgixbvhTLl6bhsajIEBUFmobHWlWx6+ciAtA3fAX2Dweef7Y7fvwOYXeQf+655zBs2DA899xzzdr/8pe/IDMzE5s3b+7wsUwmE06fPo0NGzZY20RRxIIFC3D8+PEOHeO9997Do48+Ck9Pz2bthw4dQmBgIPr164f4+Hj85je/wYABA2weo76+HvX19dbnFRUVAGA5uyNJHf48Pa2xNmeukWz3U32NhL3vXIAiqxg0bgCi4oLZjw7Gv0/Oj33kGthProH95PzYR12jacBFyzBrbbN8tQy1bbaZG9pkM2STCX6XLqGsqAiiokJtuk/D8RWzJfxaA681BDeGX0tNasNxm4dwy/tCliE0hGChIRwLsgyxSeDtKZqGL2ciQ4AsaiALIhRRbHisgSJqoIgiFFGDKm8/p//7ZE99gqqqqj0HDwsLw86dOzF58uRm7WfOnMGKFSuQm9vxKQv5+fkICwvDsWPHMH36dGv7iy++iMOHD+PEiRPtvj4tLQ2xsbE4ceIEYmJirO2No/SDBw9GVlYWfvGLX8DLywvHjx+HRtP6j93rr7+ON954o1X7Rx99BA8Pjw5/HqKOUFWg7Iw76oq10LgrCJpZDVHn6KqIiIioT1FVy2ioojSMisrtP2743uyxrDQES1vHaXyd0jDKatkGm8do6/2bHrvJ44bjQG5xLEW2tjW+p6jYN4Lb2zQNuGZRA0UQrY9lQbRua7rduk3QQBZFy2tEEao1FItQBQ0UjaVNFcW7X5rG5xpAY3kOUbR8NT7W3P0SRA0EjQhBa9nW+Fi0PhYhaiyPRY0GglaEpuGxpmGbRiNCoxWhEQBXX2qqpqYGjz32GIxGI3x8fNrd1+4R+bKyMpv3kvfx8UFpaam9h7sv7733HsaOHdssxAPAo48+an08duxYjBs3DkOHDsWhQ4cwf/78VsfZsGED1q9fb31eUVGBiIgILFq06J4/QEeSJAn79+/HwoULodMxCTqrlv107kAu8opvQKMVkPjTyfCP8HJ0iQT+fXIF7CPXwH5yDY39tGDBAui0WksoUlVAVS0jmE2eQ1WhKgqgAlCV5s9xd1+1cf8OHUtt0aY2P1aL51BUqC2eA02P1bS2xuM2eW2L55bauulYatPjwVIz7D+WIivIzclBWFAQRLXFSK/Z3DDaK1lHbTvSZh2Bbvjel9kKuOYmoda6rUmYbRlwm26XhY6HZVUUAa22IexqIGi1EDQaQKuFoNUCWi1ErQbQaCHqtBC1Tb50Woh6LTRaHUSdDhqtBhqdDhq9FlqdFhq9DlqdFlq9HjqdBlqtFjqNAJ1GhE4rQqcRoNeIcNOI1natKECnFaFv0tZ0myC4eDqG6/zf1DgzvCPsDvLDhg3Dnj17sG7dumbtX331FYYMGWLXsfz9/aHRaFBUVNSsvaio6J7Xt1dXV2Pbtm341a9+dc/3GTJkCPz9/ZGZmWkzyBsMBpuL4el0Oqfu6EauUmdfp9PpUHKzGmlf3AQAzHpkBEKG9HNsUdQK/z45P/ZR91IVxfLLv0mCKpmgShIgSZZrHRu/zObmzyWpYX8J5ro6+Hz7LWpqaqARNa2DnzXUtP/c7tdYA1DL52onXmPjeZNA2uHXtHsMtXPHbPcY9j0foarI7rE/WdQZfgCqe/g9rUG2nRHaVgFWFJttNwuNAbZ1wLUZlhunRLcTflseX2lRh6DVQmwMww0BV9TprOFXo9NCo9Va2nQa6LXaVuFWZ/0S7j7Wtt7mrhWhFS2PRSg4c/oUZk2fBneDDjqNCL22IRw3PG55TI2rDxu7MGf/HcKe2uwO8uvXr8e6detQUlKC+Ph4AEBycjL+53/+x67r4wFAr9dj8uTJSE5OxsqVKwEAiqIgOTm51YmClj755BPU19fj+9///j3fJzc3F2VlZQgJCbGrPqKuVFtpwr53L0JVVIyICcKY2aGOLomIeoCqqnevwWwZfluEYNXcvL1VgJbaOYbUzjFMUvshvOn+8v1fZxkMoOSzz+7/h0fOTxAsU2Ubbvfb3vOO7NPmc2sbIAiine/b8jX3ei403Aq2vfe18VwULa9peG6ppe3XqACqTDLu1Eq4XWPGnRoJZbUSyqol1JsVqIIAFULrYNtipPheAbdpkLYVoJuOHiuCAFWw3J1aIwrW8KnXiNA2edwYcBuDaevtd0eAmz7XakR4NQvJIvRNnzd7LEKvbfG85ftoHT9qLEkSqjNVTB3Uz6kDIvU+dgf5p59+GvX19fjtb3+LX//61wCAQYMG4a9//SvWrFljdwHr16/HE088gSlTpiAmJgabN29GdXW1dRX7NWvWICwsDBs3bmz2uvfeew8rV65stYBdVVUV3njjDTz00EMIDg5GVlYWXnzxRQwbNgwJCQl210fUFVQVSPnwKqqNJvQL9sCcx0b2imlKRI6iKkrrANpuuDU3D8zthN9WxzF1LAA3O0aL93FpGg0Enc4y9VOna/MLOst2aLQoLitFUFAwBK2mIVQ1hheh/ecd2afN5515TZOAKXb2GHfb2jyGNeC1eG7jNdbnDfu0fN7sfdvYp9lzW8EWAsyKjOTkZCxYuBBavb4Tgbp3TLftCSazgptl1cgsrrJ+ZRRX4XpJFerNDddvGxq+GibqiQIQ3s8dnko1IkKDYdBZpke7Nx0Zbhgp1oq2R43vjgRbwq++RVi2NVLMUWMi12F3kAeAH//4x/jxj3+MkpISuLu7w8ur89f4rlq1CiUlJXj11VdRWFiICRMmYM+ePQgKCgIAZGdnQxTFZq+5evUqjh49in379rU6nkajwfnz5/Hhhx+ivLwcoaGhWLRoEX7961/zXvLkMBWZelRmlkOrF7H42bHQu3Xqrx5Rt7GOGrc3hbpVCDZZrtdsd4S4YyPIrUaN26hhWF0dMn/xyy4ZNXak5gG47XDcZoDWtwjR1n30bRyn/RBuOYaNYzdet2kHSZLw7e7dmLB0KUennJkkQfb2hqZ/f2jZT12iut6MrJKqZoE9s7gKt27XQFZsry2t14gY7O+JYUFeGBbghWGBlq/B/p7QQMHu3buxdOkE/l0iolbsThM3btyA2WzG8OHDERAQYG3PyMiATqfDoEGD7C5i3bp1bU6lP3ToUKu2kSNHoq3F9t3d3bF37167ayDqLrlX7qAyUw8AmPu9Uegf6nmPV1Bv0WrU2HQ3ANsMzR0KwA3XLLd8va0QfK8p1C2fuwCxrQ2No8b3CsANQRU6HQRt+8H2XgEY1vfQtzp+e3VAq+VIJpELu11tah7WS6qQWVSJfGNdm6/xMmgxNLB5WB8W6IWIfu7Qamz/yyZJfXu1dSJqn91B/sknn8TTTz+N4cOHN2s/ceIE3n33XZvBm6ivqrpTj5QPrwIQMGpGMEbGtr+IIzlG3bVrMO7bD/9z36Lk3HkIstxmgLYE4HtNsTZ32bXGjtQsfDYbpe3gCHLLUWNdB46htx1+BZ0OZkHAoaNHEb9oEXTu7vc1akxE1B5VVVFgrGse1hse3642tfm6AZ76ZkG98SvYx40n8IioS9kd5M+ePYuZM2e2ap82bdo9F6gj6ktkWcG+dy+irkqCzlvGjO8OdXRJ1IS5tBQVu3ahPCkJ9emXAQD9ARi7801tjRq3NXKrtzHluhMjyG0eo+WocYsanHHUWJQkmC9dgjYggFOBiahLmGUF2bdrmoX1rIbAXm1q+2RsmJ9768Ae4IV+nvoerJ6I+jK7g7wgCKisrGzVbjQaIbv46BNRVzqx4zoKsozQuWkwYGIVtLo2JwVTD1Hq61GVkgLjjiRUHT16d8Rcp4PnrFnIURQMHTkSGjdD+wHaVghuOX3a+lhv2V+rbVjRmIiIelqdJON6SXWrsH6jtBom2fYUdo0oYOAADwxvFta9MSTAE54GrnVDRI5l979CcXFx2LhxI7Zu3QpNw1RGWZaxceNGzJo1q8sLJHJFN86V4Ox+y915535vBC7npzm4or5LVVXUnj0L444kVHz1FZQmJyLdxo+Db2IifJYsgerlhbO7dyOGC3QREbmsijrJOgU+q8m0+OzbNWhjeSW46UQM8ffC8BYLzg0c4Am9lidgicg52R3kf/e73yEuLg4jR47E7NmzAQBHjhxBRUUFUlJSurxAIldTUVqL5A8tU7XHx0dg8AR/XM53cFF9kCknB8aknTAmJUHKybG2a0NC4LtiBXwTV8AwZIi1XXKRxd6IiPo6VVVRUlXfKqxnFlehqKK+zdf5uGkxLNALwwO9m02JD/Nzh8hbrRGRi7E7yEdFReH8+fP4y1/+gnPnzsHd3R1r1qzBunXr0L9//+6okchlyJKCPe9cRH2NGUGDfTD9O0OhqLzkpKfIFRWo2LMHxqSdqD192touenjAOyEBvomJ8IiZyinuREQuQFFU5JXXtl4hvrgKxtq2T74GehsaArslqA9t+B7gZXC6tT+IiDqrUxf4hIaG4s0332zWVl5ejr/85S9c8I76tKOfZqAkuxIGTy0S1kZDoxWhSAzy3Uk1m1F19CiMSUmoSk6BampYTVgQ4DljBnxXJsJ7/nyIHh6OLZSIiGwymRXcKqtuFdazSqpQ18Yt2AQBiOjnYQ3sjWF9aIAXfN15eRQR9X73vVJHcnIy3nvvPfzrX/+Ch4cHgzz1WRkni3DxcB4AYOFTY+Dd383BFfVeqqqi/soVGHckwfjll5DLyqzbDMOHwXflSvgsWwZdUJADqyQioqZqTGZkFVcjs6Sy2Sj7rbIamBXbF7DrNAIG+3s2TIP3tq4OPyTAE2463naSiPquTgX5nJwcvP/++3j//feRnZ2NVatW4V//+hfmz5/f1fURuYQ7hdVI+ecVAMDkJQMxMHqAgyvqnaSiYlR8+SWMSUmov3bN2q7p3x8+yx6Ab2Ii3KKiOHWSiMiB7lSbmt13vfErr7y2zdd46jWWUfUALwxrsuhcZH8PaDW8HIqIqKUOB3lJkrBjxw68++67OHLkCBYvXozf//73WL16NV5++WVERUV1Z51ETksyydjzzkWY62WEjfBDzLLBji6pV1Fqa1F5IBnGpCRUHzsGKJZploJOB6/58+GbuAJes2ZZbvlGREQ9QlVVFFXUI6O4+eh6VkkVSqtMbb6uv6e+VVgfFuiFEF83noQlIrJDh4N8WFgYRo0ahe9///vYtm0b+vXrBwBYvXp1txVH5OxUVUXqR1dxO78a7j56LPzBGIgcObhvqqKg5tQpGHckoXLvXijV1dZt7pMmWW4ZtzgBGl9fB1ZJRNT7yYqKnNs1yGix4FxWcRWq6s1tvi7U1w1DbawQ399T34PVExH1Xh0O8mazGYIgQBAE6/3jifq6y8cKcOWbQggCkPCDMfD0NTi6JJdWf+MGjDt3oiJpJ6T8u/fs04WHwzcxEb4rlkM/cKADKyQi6p3qzTJulFYjo6h5WL9eWg2T2faCcxpRwMD+Hg2B/W5YHxrgBU/DfS/DRERE7ejwv7L5+fn47LPP8N577+H555/HkiVL8P3vf5/ToKjPKs2tROo2y3XaMSuGIGxkPwdX5Jrk8nJUfPUVjDuSUHvunLVd9PKCz5LF8E1MhPvkyfy3hoioC1TWScgqqcaV/HLsvyUi6Z9ncb20Gtm3a9DGenMwaEUMaZgG3zSwDxzgAYOWgztERI7Q4SDv5uaG733ve/je976HrKwsvP/++3juuedgNpvx29/+Fk8++STi4+M5Wk99gqnWjD3vXIQsKYgcMwCTEzhKbA/VZELVkSMw7khC1aFDUKWG+wFrNPCcNRN+iYnwio+H6MaV/4mI7KWqKsqqTcgsrkJGsWVkvXFafGFFXZM9RQAl1mfeblrrqvDDgxoCe4A3wvq5QyPyZCoRkTPp1LynoUOH4je/+Q1+9atfYe/evXjvvfewbNkyeHt7o7S0tKtrJHIqqqoi5R9XYCyuhVc/AxY+FQWBv+Dck6qqqLt4CcYdO1Cxaxfk8nLrNsPo0fBNXAHfBx6ANiDAcUUSEbkQRVGRb6xttTp8ZkkVymukNl8X4G3AUH8PaGvKMH9qFEYG+2JYoBcCvA2c/URE5CLu6wImURSxZMkSLFmyBCUlJfjHP/7RVXUROa0Lh3KRdaYYokZAwtpouHlxtfT2SAUFMH5huWWcKSvL2q4J8Ifv8hXwTVwBt5EjHVghEZFzk2QFt8pqGoJ6ZZNr2KtRK8k2XyMIQHg/94bRdW8MC/Cy3t7N10MHSZKwe/duLI2NhI53/SAicjldthJJQEAA1q9f31WHI3JKhTeM+PrTTADAjO8MQ/AQrppui1JdjYr9+2FMSkLNNycA1XLhpWAwwHvBAviuTITn9OkQtFwMiYioUa1JRlaJ5RZuTRedu1laDXMbF7DrNAIGDfC0Xr8+tOH69SH+XnDX83JHIqLeir9FE3VQXbWEvX+7CEVWMXRiAMbFhzu6JKeiyjJqTpyAMSkJFfv2Q62ttW7zmDoVvisT4Z2QAI2XlwOrJCJyPGONhMwSy8h6RpElrGcWVyGvvLbxvGcrHnoNhja573rjV2R/D+h421Mioj6HQZ6oA1RFxYEP0lF1ux6+Ae6Yt2Y0ryNsUJ+ZCWNSEow7v4C5qMjarh84EL4rE+GzfAX04WEOrJCIqOepqoriynrrdesZjVPii6tRWlXf5uv6eeiaBPW792AP8XGDyPVYiIioAYM8UQec2XcLty6UQaMVkfBsNAzuffuvjvn2bVTs2g1jUhLqLl60tos+PvBZusRyy7gJE3iyg4h6PVlRkXunpklgt3zPKq5CZb25zdeF+LpZ77k+PMhy7fqwQC8M8DL0YPVEROSq+nYaIeqAvGt3cCLpOgBg9qrhCIjwdnBFjqGYTKg6eAjGpCRUpaYC5oZfULVaeMXFwTcxEV7z5kLU6x1aJxFRd6g3y7hZWtNidL0KN0qrUW9WbL5GFICBAzxbhfWhgV7wMvBXMCIi6jy7/xeRZRkffPABkpOTUVxcDEVp/p9XSkpKlxVH5Gg1FSbse+8SVBUYGRuMqFmhji6pR6mqitpvv7Vc9/7VHihGo3WbW3Q0fBMT4fPAUmj793dglUREXaeq3my977p1dL2kCtm3ayC3seCcXitiiH/jgnN3p8MP8veAQcsF54iIqOvZHeSff/55fPDBB3jggQcQHR3NqbPUaymKin3vXUKN0YR+IZ6Y89jIPvPn3ZSbB+POJBiTkiDdyra2a4OC4LvCcss4w7BhDqyQiOj+lFXVW1eFzyiyhPXM4ioUGOvafI23QWtdFX54kwXnwvt5QMPr14mIqAfZHeS3bduGjz/+GEuXLu2OeoicxskvbyDv6h1oDRosfjYaOkPvHlWRq6pQuXcvjDuSUHPypLVdcHeHz6KF8E1MhEdsLARN7/45EFHvoaoq8o111mnwmU2mxN+pkdp8nb+XAcMCW4+wB3ob+swJXSIicm52B3m9Xo9hHImjXi77UhlOfXUTADDveyPRP8TTsQV1E9VsRvXx4zDuSELlgQNQ6xtWUhYEeEyLtUydX7gQomfv/PxE1DuYZQW3btc0Cex3p8TXmOQ2Xxfez90S0huvYQ/0wrAAb/h66HqweiIiIvvZHeR//vOf449//CP+8pe/8Kw09UqVt+uwf0s6oAJj4sIwIibY0SV1ubqrV2HckQTjl19ALim1tuuHDIHvypXwXb4MupAQB1ZIRNRanSRbp8BnNbmG/WZZNSTZ9vXrWlHAIH9P60Jzw4MsK8UPDfCCu54zjIiIyDXZHeSPHj2KgwcP4quvvsKYMWOg0zU/a/355593WXFEPU2WFex79xLqqiUERHpj1sO9Z/aJuaQExl27YNyRhPorV6ztGj8/+CxbBt/ERLhFj+EJOiJyOGOtZA3rlmvYK5FZUoXcO7VQbed1uOs0GBp4N7A33oN94AAP6DRiz34AIiKibmZ3kPfz88ODDz7YHbUQOdzxf2Wh8LoRenctEtZGQ6tz7dEapa4OVSkpKE9KQvXRrwG5YYqpTgfvuXPhuzIRXrNnQ+At44ioh6mqipLKuwvOZRZbFp3LLKlCSWV9m6/z89A1Cet3v0J93SFywTkiIuoj7A7y77//fnfUQeRw18+W4NyBHADA/CdGwzfA3cEVdY6qqqg9ffruLeOqqqzb3MePh+/KRHgvXgxtv34OrJKI+gpFUZF7pxaZJXcXmmucEl9ZZ27zdcE+btaQPrTJKvEDPPWcOURERH2e3UG+UUlJCa5evQoAGDlyJAICArqsKKKeZiypRfLfLwMAxi+IwJAJrvfn2XTrFoxJO2HcuRNSbq61XRsaAt/ERPiuWAHD4MEOrJCIejtFUXH8ehn25grY//F5ZJXW4HpJFerNis39RQGI7O9hDeuWRee8MTTAE95uXHCOiIioLXYH+erqavz0pz/F3//+dyiK5T9mjUaDNWvW4M9//jM8PDy6vEii7mSWZOx55wJMtWYED/HF9AeHOrqkDpONRlTs2Qvjjh2oPXvW2i56esJ7cYLllnFTpkAQeX0oEXWf4oo6fHI6F9tP5iD7dg0ADZBTaN2u14oY4u/ZJKxbRtcHDfCEm4tfwkREROQIdgf59evX4/Dhw/jiiy8wc+ZMAJYF8J577jn8/Oc/x1//+tcuL5KoOx39JBOlOVVw89QhYe0YaJx8USRVklB19CiMSTtRlZIC1WSybBBFeM6YAd/ERHgvmA/R3TUvDSAi1yArKlIzSrAtLRsHLhdDViyr0Hm7aTHSy4S5E0diVIgvhgV6IaK/BzS8fp2IiKjL2B3kP/vsM3z66aeYO3eutW3p0qVwd3fHI488wiBPLuVaWiEupeYBArDw6Sh49XNzdEk2qaqKuvR0y3XvX+6CfPu2dZth+HD4rlwJn2XLoAsKdGCVRNQXFBhr8fHJXHx8Kgd55bXW9ikD+2F1TCQWjvLHwQN7sTRucKs72xAREVHXsDvI19TUICgoqFV7YGAgampquqQoop5wu6AaB//Pss7DlCWDEDlmgIMrak0qKkbFFzthTEpCfUamtV0zYAB8ly2D78pEGEaN4sJPRNStzLKCg1cto+8HrxajYfAdfh46fGdiOFbHRGB4kDcAQJIkB1ZKRETUN9gd5KdPn47XXnsNf//73+HmZhm9rK2txRtvvIHp06d3eYFE3UGql7HnnYsw18sIG9kPU5c5zyJwSk0NKpOTYdyRhOrjx4GGtSgEvR7eC+bDNzERnjNmQOBIFxF1s5zbNfj4VA4+PpWDooq7t4SbNqQ/VsdEImFMMK9xJyIicgC7g/wf//hHJCQkIDw8HOPHjwcAnDt3Dm5ubti7d2+XF0jU1VRVxeGPruJOQTU8fPVY9IMxDr/3sKooqEk7CWNSEir37oXSZHaL++TJ8E1cAZ/Fi6Hx8XFglUTUF0iyggPpRdh6MgdHMkqgNoy+D/DU47uTw7FqagSGBHg5tkgiIqI+zu4gHx0djYyMDPzf//0frly5AgBYvXo1vve978Gdi2uRC0g/mo+rJwohCEDCM2Pg4aN3WC3112/AmJQE4xc7Yc4vsLbrIiIabhm3HPrISIfVR0R9x83Samw7mYNPT+eitOru6Pvs4f54dGokFkYFQa917sVAiYiI+opO3Ufew8MDa9eu7epaiLpdSU4ljmzPAADEJg5B6PB+PV6D+c4dVOzeDWPSTtSdP29tF7294bNkCXxXJsJ94kRe905E3a7eLGPvpSJsS8vGsawya3uAtwGPTAnHqimRiBzA28oSERE5mw4F+Z07d2LJkiXQ6XTYuXNnu/uuWLGiSwoj6mr1tWbseeciZLOCQWMHYNKigT335mYzqpJTUL3rS1QeOgw0Lgal0cBr9mz4rkyE17x5EA2GnquJiPqszOIqbEvLxmdncnGnxvLvkSAAc0YEYHVMJOJHBULn5LfiJCIi6ss6FORXrlyJwsJCBAYGYuXKlW3uJwgCZFnuqtqIuoyqqkj5+2VUlNTCq78B85+MgtDN18Wrqoq6Cxdw5/N/YejOnShsct27IWo0/BIT4fPAA9D6+3drHUREAFAnyfjqYgG2nshB2s27t7AM8XXDw1Mi8MiUcIT34+g7ERGRK+hQkFcaVs1u+ZjIVZxPycX1syUQNQIWrx0LN8/uW/Fdys+HcecXMCYlwXTjBgBAA0ATEADfFcvhuyIRbiNHdNv7ExE1dbWwElvTsvH5mVxU1JkBABpRwLyRgXgsNgJzRgRC4+AFP4mIiMg+dl8j//e//x2rVq2CocUUYJPJhG3btmHNmjVdVhxRVyi8bsSxzyz3YJ/53WEIGtz1K7/LVdWo3L8fxh07UJOWhsZlngU3N3jOn48rwUGY89OfQt9wy0Yiou5UYzLjy/MF2JqWjbPZ5db2MD93PDo1Ag9PiUCwL/89IiIiclV2XwD31FNPwWg0tmqvrKzEU0891aki3nrrLQwaNAhubm6IjY1FWlpam/vOnTsXgiC0+nrggQes+6iqildffRUhISFwd3fHggULkJGR0anayLXVVUnY+7eLUBQVQycFYuzc8C47tirLqPr6a+S9+CIyZs9GwYYNqDlxAlBVeMTEIOS3v8Xwo0cQ/F8bUTNiBAQN77VMRN3rYp4RL++4gNjfJuPFT8/jbHY5tKKAJdHB+PDpGBx5cR5+On84QzwREZGLs3tEXlVVm6tp5+bmwtfX1+4Ctm/fjvXr1+Ptt99GbGwsNm/ejISEBFy9ehWBgYGt9v/8889hMpmsz8vKyjB+/Hg8/PDD1rb//u//xp/+9Cd8+OGHGDx4MF555RUkJCQgPT0dbhwR7TNURcX+99NRdacevoHuiH98VJesBF+fkWG5ZdzOL2AuLra26wcNgu/KRPguXw5dWJi1XWlc2I6IqBtU1Zux89t8bDuZjfO5d0+0DxzggUenRuK7k8MR4M2FNImIiHqTDgf5iQ23wxIEAfPnz4dWe/elsizjxo0bWLx4sd0FbNq0CWvXrrWO5r/99tvYtWsXtmzZgpdeeqnV/v3792/2fNu2bfDw8LAGeVVVsXnzZrz88stITEwEYLkcICgoCDt27MCjjz5qd43kmk7vvYXsS2XQ6EQsfnYs9O6dutsiAMBcVoaKXbtg3JGEuvR0a7vo6wvfB5bCNzERbuPG8ZZxRNQjVFXF+VwjtqZlY+e5fNSYLAvN6jUiEqKDsXpqBKYNGQCR174TERH1Sh1ONo2r1X/77bdISEiAl5eXdZter8egQYPw0EMP2fXmJpMJp0+fxoYNG6xtoihiwYIFOH78eIeO8d577+HRRx+Fp6cnAODGjRsoLCzEggULrPv4+voiNjYWx48ftxnk6+vrUV9fb31eUVEBAJAkCZITj6Y21ubMNTpK/rVypO28DgCY+fBQ+AYZ7P45KfX1qDl8GBU7d6Lm6NdA4x0ZtFp4xsXBe8VyeM6eDUGvBwCYzWabx2E/uQb2k/NjHwEVtRJ2ni/A9lN5uFJYaW0f4u+BVVPCsXJCKPp7Wv5NkmUzHHEjGfaTa2A/OT/2kWtgP7kGV+kne+oTVLVhVa4O+vDDD7Fq1aoumaKen5+PsLAwHDt2DNOnT7e2v/jiizh8+DBOnDjR7uvT0tIQGxuLEydOICYmBgBw7NgxzJw5E/n5+QgJCbHu+8gjj0AQBGzfvr3VcV5//XW88cYbrdo/+ugjeHjwVjyuRq4XUHTUA4pJhEeYhH5j69DhgXJVhdutbPicOQPv8+egqa2zbqoLD0fF5EmoGD8eSsOJIyKi7qaqwM0q4FiRiLNlAiTF8g+aVlAxYYCKGUEKhnij4//OERERkVOqqanBY489BqPRCB+f9hfotnuu8RNPPNHpwrrae++9h7Fjx1pDfGdt2LAB69evtz6vqKhAREQEFi1adM8foCNJkoT9+/dj4cKF0Om673ZqrkSRVex66wIUkxH9Qjzw4PoJ0OrvvciclJuLyi++ROUXX0DKybG2a4OC4L18GbyXL4d+yJBO1cR+cg3sJ+fX1/qovEbCjnP52H4yF5kl1db2EYFeeGRKGBLHh8LPw/l+Dn2tn1wV+8n5sY9cA/vJNbhKPzXODO8Iu4O8LMv4wx/+gI8//hjZ2dnNFp4DgNu3b3f4WP7+/tBoNCgqKmrWXlRUhODg4HZfW11djW3btuFXv/pVs/bG1xUVFTUbkS8qKsKECRNsHstgMLS6nR4A6HQ6p+7oRq5SZ0/4ZlcWCjKM0Bk0WPLDsXD3bHvmiFxZiYo9e2BMSkLtqdPWdsHDAz6LFsF3ZSI8YmIgiHbf3MEm9pNrYD85v97cR6qq4sSN29iWlo3dFwthMisAAHedBsvGhWB1bCQmRvi5xHocvbmfehP2k/NjH7kG9pNrcPZ+sqc2u4P8G2+8gXfffRc///nP8fLLL+OXv/wlbt68iR07duDVV1+161h6vR6TJ09GcnKy9Rp8RVGQnJyMdevWtfvaTz75BPX19fj+97/frH3w4MEIDg5GcnKyNbhXVFTgxIkT+PGPf2xXfeRabl0sw+k9twAA874/Cv2CW09/V81mVB87BuOOHahMToHauDaCIMBz+nT4rkyE94IFEHlJBRH1oLKqenx2Jhfb0nJwvfTu6HtUiA9Wx0YicUIofNyc9xcPIiIi6ll2B/n/+7//w9/+9jc88MADeP3117F69WoMHToU48aNwzfffIPnnnvOruOtX78eTzzxBKZMmYKYmBhs3rwZ1dXV1lXs16xZg7CwMGzcuLHZ69577z2sXLkSAwYMaNYuCAL+/d//Hb/5zW8wfPhw6+3nQkNDrScLqPepvF2H/e9fAgBEzwnD8KlBzbbXXbkC444kGL/8EnJpqbVdP3To3VvG3WMWCBFRV1IUFceyyrD1ZDb2XSqEJFuWrPHUa7BiQhhWx0RgbJivS4y+ExERUc+yO8gXFhZi7NixAAAvLy8YjZZ71i5btgyvvPKK3QWsWrUKJSUlePXVV1FYWIgJEyZgz549CAqyBLHs7GyILaY2X716FUePHsW+fftsHvPFF19EdXU1nn32WZSXl2PWrFnYs2cP7yHfS8lmBXv/dhH11WYERHpj1neHAwCk4mJUfLkLxqQk1F+9at1f068ffJYts9wybkwUf0kmoh5VXFmHT07lYvvJHGTfrrG2j4/ww+qpEVg+PhSehs7fLpOIiIh6P7t/UwgPD0dBQQEiIyMxdOhQ7Nu3D5MmTcLJkydtXmfeEevWrWtzKv2hQ4datY0cORLtLbYvCAJ+9atftbp+nnqn459noehGBQweWixaMwxVe7+CMSkJ1V9/DSiW60sFnQ5e8fHwTUyE1+xZEJz42hgi6n1kRUVqRgm2pWUj+XIxzIrl/zBvgxYPTgrDo1MjERXqvIurEhERkXOxO8g/+OCDSE5ORmxsLH7605/i+9//Pt577z1kZ2fjZz/7WXfUSNSmrDPFOJdiWWV+ouY0ihLXQ6m+e32p+8SJ8E1MhM+SxdD4+jqqTCLqowqMtfj4ZC4+PpWDvPJaa/vkgf2wOiYSD4wNgXsH7qxBRERE1JTdQf6//uu/rI9XrVqFyMhIHD9+HMOHD8fy5cu7tDii9pSczUDyuzcBaBCZvR8e13dAAaALC4Nv4gr4rlgB/aBBji2SiPocs6zg0NUSbE3LxsGrxWgYfIevuw7fmRSG1TGRGBHk7dgiiYiIyKXd90V406dPx/Tp07uiFqJ7ksvLUbFnD27v+BJHNQsheUfAtzwTw4qT4fvdh+CXmAj3yZO77JZxREQdlXunBh+fzMH2Uzkoqqi3tscO7o/VMZFYHB0MNx1H34mIiOj+dSjI79y5s8MHXLFiRaeLIbJFlSRUHTkC444kVB08CFWScGXEalSFRkCv1mH+d8MQ9MBhiO7uji6ViPoYSVaQfLkIW9NykJpRgsblW/p76vHdyeFYNTUCQwO8HFskERER9TodCvItb9smCEKrxeYaV/6WZblrKqM+TVVV1F1KhzEpCRVffgn5zh3rttIJicj3mwUIwOLnpiEkqr8DKyWivuhWWTW2nczBJ6dyUVp1d/R91jB/PBoTgYVRQTBoOfpORERE3aNDQV5pWPkbAA4cOID//M//xJtvvmmdUn/8+HG8/PLLePPNN7unSuozpMJCGL/4AsakJJgys6ztGn9/+C5bBmX2UqRuLwNMCqYuHYQIhngi6iH1Zhn7LhVh28lsfJ1ZZm339zLgkSmW0feBAzwdWCERERH1FXZfI//v//7vePvttzFr1ixrW0JCAjw8PPDss8/i8uXLXVog9X5KdTUqDxyw3DLu+DdonJsqGAzwnj8fvisT4TljBiQz8Ol/nYLZpCB8VD9MeWCwgysnor4gq6QK29Ky8dmZPNyuNgEABAGYMyIAj06NxPzRgdBpuC4HERER9Ry7g3xWVhb8/Pxatfv6+uLmzZtdUBL1BaosoyYtDcYdSajYvx9qTY11m8eUKfBdmQjvhARovC0rO6uqikMfpuNOYQ08ffVY+PQYiKLgqPKJqJerk2R8dbEAW9NykHbjtrU92McNj0yNwCNTwhHez8OBFRIREVFfZneQnzp1KtavX49//OMfCAoKAgAUFRXhP/7jPxATE9PlBVLvUp+VBWPSThh37oS5sNDarouMvHvLuIiIVq+7dCQfGSeLIIgCFq2NhoePvifLJqI+4mphJbamZeNfZ/NgrJUAAKIAxI8KxOqYSMwZEQAtR9+JiIjIwewO8lu2bMGDDz6IyMhIRDQErpycHAwfPhw7duzo6vqoFzDfuYOKXbthTEpC3YUL1nbRxwc+S5bANzER7hMnWBdMbKkkuxJHPr4GAJi2cghCh/n1RNlE1EfUmmR8eT4fW9OycSa73Noe5ueOVVMj8PCUcIT48q4YRERE5DzsDvLDhg3D+fPnsX//fly5cgUAMHr0aCxYsKDNIEZ9j2IyoerQIRiTdqLq8GHAbLZs0GjgFRcH38REeM2bC9FgaPc49TUS9rxzAYpZxaBx/pi4ILL7iyeiPuFSvhHb0nKw42weKust/0ZpRQELRgfh0ZgIzB4eAA0v4SEiIiInZHeQByy3mlu0aBEWLVrU1fWQC1NVFXXnzqE8KQkVu7+CYjRat7mNGQPfxET4PLAU2gEDOny85A8vo6K0Dt4D3DD/idEQ+Es1Ed2HqnozvjiXj21p2TiXe/ffqIEDPLBqagS+Ozkcgd5uDqyQiIiI6N46FOT/9Kc/4dlnn4Wbmxv+9Kc/tbvvc8891yWFkeuQ8vIst4zbkQRTkwUPtYGB8F2xHD4rVsBtxAi7j3suOQc3zpVC1ApY/Gw03Dx1XVg1EfUVqqrifK4R205mY+e3+ag2yQAAnUZAwphgrI6JxPQhA7iAJhEREbmMDgX5P/zhD/je974HNzc3/OEPf2hzP0EQGOT7CLmqCpV798GYlISatDRru+DuDu+FC+CbmAjPadMgaDSdOn5BlhHHP7fcR37Wd4cjcKBPl9RNRH1HRZ2EpLN52JqWg/SCCmv7kABPrJ4aie9MCsMAr/Yv7yEiIiJyRh0K8jdu3LD5mPoWVZZRfew4jElJqDxwAGpdnWWDIMAjNha+iYnwXrgQGi/P+3qf2ioT9r17EYqiYviUQETPCeuC6omoL1BVFWeyy7E1LRtfns9HnaQAAPRaEQ+MDcGjUyMQM7g/13QhIiIil9apa+Spb6m7eg3GpCRUfPEFzCUl1nb94MHwXbkSvsuXQRca2iXvpSoqDmxJR9WdevgFeWDu90fxF24iuqfyGhM+P5OHbSezca2oyto+Msgbj8ZE4MGJYfDz4G0riYiIqHfoUJBfv359hw+4adOmThdDzsNcWoqKXbtQviMJ9ZcvW9s1vr7weeAB+K5MhNvYsV0esk/vuYns9NvQ6kQsfjYaejeeayIi21RVRdqN29ialo3dFwthMltG3910IpaPC8WjMZGYFOnHk4FERETU63QoJZ09e7ZDB+MvS65Nqa9HVUoKjDuSUHX0KCBbFoSCTgfvuXMst4yLi4Og755Rrdwrt5H2heXSjbjVIzEgzKtb3oeIXFtZtQlfnM/B1pPZuF5SbW2PCvHB6thIJE4IhY8bF8ckIiKi3qtDQf7gwYPdXQc5iKqqqD1zBsYdSajYswdKZaV1m9v4cZZbxi1ZAm2/ft1aR3V5Pfa9dwmqCoyeEYLRM0K69f2IyLUoiopjWWX44JqIF9IOQ5JVAICnXoMVE0KxOiYSY8N8eUKZiIiI+gTOW+6jTNnZMCbthHHnTkg5OdZ2bWgIfFesgO+KRBiGDO6RWhRZwb73LqG2UsKAME/MftT+W9URUe9UXFmHT0/nYvvJHNwqqwEgAlAxPtwXq2MisWx8KLwM/K+MiIiI+pZO/fZz6tQpfPzxx8jOzobJZGq27fPPP++SwqjryRUVqNizB8YdSag9c8baLnp4wDshAb6JifCImQpBFHu0rhM7byA/oxw6Nw0WPzsWOn3nbllHRL2DrKg4klGCbWk5OHC5CGbFMvruZdBigp8J//HQDIyPHODgKomIiIgcx+4gv23bNqxZswYJCQnYt28fFi1ahGvXrqGoqAgPPvhgd9RI90GVJFR9/TWMSUmoSk6B2njiRRThOX06fFcmwnv+fIgeHg6p7+b5UpzZewsAMO/7o+AX5Jg6iMjxCo11+PhUDrafzEFeea21ffLAfnh0agQWjfbHoQP7EBXi48AqiYiIiBzP7iD/5ptv4g9/+AP+7d/+Dd7e3vjjH/+IwYMH44c//CFCQnhdszNQVRX1ly/DmJQE45e7IJeVWbcZhg+D78qV8Fm2DLqgIAdWCVSU1eLAB+kAgLFzwzF8imPrIaKeZ5YVHL5Wgq1p2Ui5UoyGwXf4uuvwnUlhWB0TiRFB3gAASZIcWCkRERGR87A7yGdlZeGBBx4AAOj1elRXV0MQBPzsZz9DfHw83njjjS4vkjpGKipGxZdfwLgjCfUZGdZ2Tf/+8F2+DL6JiTCMHu0Ui0HJZgV7/3YJ9TVmBA70xsyHhjm6JCLqQbl3avDxyRx8fCoXhRV11vbYwf2xOiYSi6OD4abjZTZEREREttgd5Pv164fKhpXNw8LCcPHiRYwdOxbl5eWoqanp8gKpfYLJhMpdu1D15S5UHzsGKJb7KAs6Hbzmz4dv4gp4zZoFQedct2L6+rNMFN+sgMFDi4S10dDoeva6fCLqeZKsIPlyMbamZSM1owRqw+h7f089vjs5HKumRmBoAG87SURERHQvdgf5uLg47N+/H2PHjsXDDz+M559/HikpKdi/fz/mz5/fHTWSDaqqovj1NzD0iy9Q1GTBQfdJkyy3jFucAI2vrwMrbFvm6WJcOJgLAFjwZBR8/N0dXBERdafsshpsO5mNT07noqSy3to+c9gArI6JxMKoIBi0HH0nIiIi6qgOB/mLFy8iOjoaf/nLX1BXZ5kG+ctf/hI6nQ7Hjh3DQw89hJdffrnbCqXmBEGAubQEoskEbVgY/FauhO+K5dAPHOjo0tpVXlSDlH9cBgBMSojEoHH+Dq6IiLqDyaxgX3ohtqXl4GhmqbXd38uAh6eE49GpERg4wNOBFRIRERG5rg4H+XHjxmHq1Kl45pln8OijjwIARFHESy+91G3FUfv6/+hHuDp6NOb+5CfQ6/WOLueezCYZe965CKlORsgwX8SuGOLokoioi10vqcK2kzn49HQubldbZgsJAhA3PACrYyIxf3QgdBpeSkNERER0Pzoc5A8fPoz3338fP//5z/Gzn/0MDz30EJ555hnMnj27O+ujdrhFR6M2O9spFq/riNTt11CWVwV3bx0SnomGyF/miXqFOknGnouF2JqWjRM3blvbg33c8MiUcDwyNQLh/XhrSSIiIqKu0uEgP3v2bMyePRt//vOf8fHHH+ODDz7AnDlzMGzYMPzgBz/AE088geDg4O6slVzYleMFuPx1ASAAC38wBp5+BkeXRET36VpRJbamZeNfZ/NQXmO5NZwoAPGjAvHo1EjMHRkALU/YEREREXU5uxe78/T0xFNPPYWnnnoKmZmZeP/99/HWW2/hlVdeweLFi7Fz587uqJNcWFleFQ5/dBUAELNsMCJG9XdwRUTUWbUmGbsuFGBrWjZO37pjbQ/zc8eqqRF4eEo4Qny5gCURERFRd7I7yDc1bNgw/OIXv8DAgQOxYcMG7Nq1q6vqol7CVGfGnncuwiwpiIjqjylLBjm6JCLqhPT8CmxNy8aOb/NQWWcGAGhFAQtGB+HRmAjMHh4Ajegal/kQERERubpOB/nU1FRs2bIFn332GURRxCOPPIIf/OAHXVkbuThVVXHon1dQXlQDTz8DFj4VBYG/6BO5jOp6M744l4+tadk4l2u0tkf298CjMRH47uRwBHq7ObBCIiIior7JriCfn5+PDz74AB988AEyMzMxY8YM/OlPf8IjjzwCT0/eRoiau5Sah4xTxRBEAQnPjIG7t/OvrE/U16mqigt5RmxNy8HOb/NQbZIBADqNgEVjgvFYTCSmDxkAkSfliIiIiBymw0F+yZIlOHDgAPz9/bFmzRo8/fTTGDlyZHfWRi6s+FYFjnySAQCY/uBQhAzzc2xBRNSuijoJSd/mY1taNi7lV1jbh/h7YnVMJL4zKQwDvLhIJREREZEz6HCQ1+l0+PTTT7Fs2TJoNJrurIlcXF21hD3vXIRiVjF4vD8mLIhwdElEZIOqqjiTXY5tadn48nwBaiXL6LteK2JpdDBWx0QiZnB/l7nFJREREVFf0eEgz9XoqSNUVUXyh5dRWVYHH383zH9iNEMAkZMx1kj4/GwutqXl4GpRpbV9RJAXHp1qGX338+ClMERERETO6r5WrSdq6dv9Obh5vhSiVkDC2mgYPHSOLomIYDnJdvLmHWxNy8buCwWoNysAADediGXjQrE6JgKTIvvxxBsRERGRC2CQpy6Tn1mO4zuyAACzHxmBwIE+Dq6IiG5Xm/DZ6VxsO5mNrJJqa/voEB88FhOBFRPC4OvOE25EREREroRBnrpEbaUJ+/52EaqiYvjUIIyZHerokoj6LEVRcfx6GbamZWPfpSKYZMvou4deg8QJoXh0aiTGhfty9J2IiIjIRTHI031TFBX7t1xCtdGEfsEemPu9kQwIRA5QXFmHT0/nYvvJHNwqq7G2jwv3xeqYSCwfHwovA//ZJyIiInJ1/I2O7tup3TeRc/kOtDoRCc9GQ+/GP1ZEPUVRVBzJLMXWE9k4cLkIZkUFAHgbtEicaBl9jw7zdXCVRERERNSVREcX8NZbb2HQoEFwc3NDbGws0tLS2t2/vLwc//Zv/4aQkBAYDAaMGDECu3fvtm5//fXXIQhCs69Ro0Z198fos3Iu38bJXTcAAHO+NxIDQr0cXBFR31BorMOfkzMw+78P4oktadhzqRBmRcWkSD/8/rvjcOKX8/GblWMZ4omIiIh6IYcOnW7fvh3r16/H22+/jdjYWGzevBkJCQm4evUqAgMDW+1vMpmwcOFCBAYG4tNPP0VYWBhu3boFPz+/ZvuNGTMGBw4csD7XajlC3B2q7tRj/5ZLgApEzQzBqGkhji6JqFczywoOXyvB1rRspFwpRsPgO3zddXhwYhhWx0RiZLC3Y4skIiIiom7n0IS7adMmrF27Fk899RQA4O2338auXbuwZcsWvPTSS63237JlC27fvo1jx45Bp7Ossjxo0KBW+2m1WgQHB3dr7X2dLCvY995F1FZKGBDuhdmrRji6JKJeK6+8FttP5uDjkzkorKiztscM7o/VMRFYEh0CN53GgRUSERERUU9yWJA3mUw4ffo0NmzYYG0TRRELFizA8ePHbb5m586dmD59Ov7t3/4NSUlJCAgIwGOPPYb//M//hEZz95fYjIwMhIaGws3NDdOnT8fGjRsRGRnZZi319fWor6+3Pq+oqAAASJIESZLu96N2m8baHFHjiaQbKMg0QuemwYKnRkEVFEiS0uN1uAJH9hN1nLP1kyQrOHi1BB+fykNqZinUhtH3fh46fGdiKB6eHI6hAZ4Ne/eNv3/O1kdkG/vJNbCfnB/7yDWwn1yDq/STPfUJqtr462HPys/PR1hYGI4dO4bp06db21988UUcPnwYJ06caPWaUaNG4ebNm/je976Hn/zkJ8jMzMRPfvITPPfcc3jttdcAAF999RWqqqowcuRIFBQU4I033kBeXh4uXrwIb2/bU05ff/11vPHGG63aP/roI3h4eHTRJ+49aos0KDtj+bn0n1gLj2Czgysi6j1K64DjxSLSigVUSHfv/jDCV8H0QBXj+qvQOnx1EyIiIiLqajU1NXjsscdgNBrh4+PT7r4uFeRHjBiBuro63LhxwzoCv2nTJvz+979HQUGBzfcpLy/HwIEDsWnTJvzgBz+wuY+tEfmIiAiUlpbe8wfoSJIkYf/+/Vi4cKH1UoPuVlFah8//+yxMtWZEzw3FjIeG9sj7ujJH9BPZz5H9ZDIrOHC5GNtP5+JY1m1ru7+XHg9NDMPDk8MwcABPKvLvkmtgP7kG9pPzYx+5BvaTa3CVfqqoqIC/v3+HgrzDptb7+/tDo9GgqKioWXtRUVGb17eHhIRAp9M1m0Y/evRoFBYWwmQyQa/Xt3qNn58fRowYgczMzDZrMRgMMBgMrdp1Op1Td3SjnqpTlhSkfHAFplozggb7YNZ3R0DDocEOc5U/T31dT/bT9ZIqbDuZg89O56Ks2gQAEAQgbngAVsdEYP7oIOg0/DvWEv8uuQb2k2tgPzk/9pFrYD+5BmfvJ3tqc1iQ1+v1mDx5MpKTk7Fy5UoAgKIoSE5Oxrp162y+ZubMmfjoo4+gKApE0fLL7bVr1xASEmIzxANAVVUVsrKy8Pjjj3fL5+hLvv40A8W3KmHw1CJhbTRDPFEn1Eky9l4qxEcnsnHixt3R9yAfA1ZNicDDUyIQ0Z+j70RERETUNoeuWr9+/Xo88cQTmDJlCmJiYrB582ZUV1dbV7Ffs2YNwsLCsHHjRgDAj3/8Y/zlL3/B888/j5/+9KfIyMjAm2++ieeee856zBdeeAHLly/HwIEDkZ+fj9deew0ajQarV692yGfsLTJOFeHC4TwAwIIno+Dd383BFRG5loyiSmxNy8HnZ3NRXmNZyEQUgHkjA7E6JhJzRwZAy9F3IiIiIuoAhwb5VatWoaSkBK+++ioKCwsxYcIE7NmzB0FBQQCA7Oxs68g7AERERGDv3r342c9+hnHjxiEsLAzPP/88/vM//9O6T25uLlavXo2ysjIEBARg1qxZ+OabbxAQENDjn6+3uFNYjYP/uAIAmLR4IAaN9XdwRUSuodYkY9eFAmxNy8bpW3es7WF+7lg1NQIPTwlHiK+7AyskIiIiIlfk0CAPAOvWrWtzKv2hQ4datU2fPh3ffPNNm8fbtm1bV5VGACSTjD3vXIRULyN0uB9ilw92dElETi89vwLbTmbjX2fzUFlnuauDRhSwYLRl9H328ABoROEeRyEiIiIiss3hQZ6cW+rWq7idXw13Hz0WPTMGIqf+EtlUXW/GF+fysfVkDs7llFvbI/t7WEbfJ4cj0IeXpBARERHR/WOQpzZdPpaPK8cLIQjAoh+Mgadv65X9ifq6C7lGfJSWjZ3f5qHaJAMAdBoBi8YEY/XUSMwYOgAiR9+JiIiIqAsxyJNNpblVOLz1GgAgZvkQhI/s5+CKiJxHRZ2EpG/zsS0tG5fyK6ztQ/w98WhMBB6aFI4BXjzxRURERETdg0GeWjHVmrHnnQuQJQWRY/pj8uKBji6JyOFUVcXZnHJsPZGNL88XoFayjL7rtSKWRgfj0ZhIxA7uD0Hg6DsRERERdS8GeWpGVVWk/OMKjMW18OpnwIKnoiBwWjD1YcYaCf86m4utaTm4WlRpbR8e6IXVMZH4zqQw+HnoHVghEREREfU1DPLUzIVDecg6UwxRFJCwNhruXgwo1PeoqoqTN+9gW1o2dl0oQL1ZAQC46UQsGxeK1TERmBTZj6PvREREROQQDPJkVXSjAl9/mgEAmP6doQge4uvgioh6VpUEbPn6Jj4+nYeskmpr++gQHzwWE4EVE8Lg665zYIVERERERAzy1KCuWsLev12EIqsYMjEA4+dHOLokoh5zragSfzpwDV9d1EBWLYs8eug1WDE+FKtjIjEu3Jej70RERL2AoigwmUxddjxJkqDValFXVwdZlrvsuNS1nKWfdDodNBpNlxyLQZ6gKiqSP0hH5e06+Pi7IX7NaIYW6hMKjXX4w/5r+OR0DhQVAASMDfPB6piBWDEhFF4G/hNJRETUW5hMJty4cQOKonTZMVVVRXBwMHJycvj7sxNzpn7y8/NDcHDwfdfB31IJZ/dn4+aFMmi0IhY/OxYGd/6xoN6tsk7C/zt8He8evY46yfKf+aKoQIzT5OOHj0yDTsfp80RERL2JqqooKCiARqNBREQERFHskuMqioKqqip4eXl12TGp6zlDP6mqipqaGhQXFwMAQkJC7ut4TGx9XH7GHXyTdB0AMHvVcAREeju4IqLuYzIr+OjELfwpJRO3///27jwuqrL9H/jnzMCwoyLLIKKoGO6SooamiBtI9TyU5VqB65OKij4maOaetmO5YJqCZqaPWtrPUEQSLTU1FbcUN1BMEXc2gYFzfn/wZXJkQIZtZuDzfr3mlXPOfe5zHW5OwzXnPtfJLppW59W0AWYGtEKHRjaIibml5wiJiIioOhQUFCAnJweNGjWCpaVllfVbPFXf3NycibwBM5RxsrCwAACkp6fD0dGxUtPsmcjXYTkZ+Yj99jwkUcIL3ZzQ5uVG+g6JqFpIkoSYs2n4NPYirt/PAQA0d7BCmH8rDGjjBEEQoFKp9BwlERERVZfi+6IVCj6RifSr+IsklUrFRJ50J4oS4tadR87jfDRQWsJnmIfe7xchqg5/XLuPJbsv4nTqIwCAvbUZpvZviSFerjCR85tzIiKiuoR/75K+VdXvIBP5Our4L8m4efEhTBRF98UrzPmrQLXLpTuZ+GT3RcRfLLoPyVIhx7hezTG2Z3NYsYgdERERERkx/jVbB9346z7+jEkBAPQe0Qp2jaz0GxBRFbqTUVSJ/n9/FlWil8sEDOvqisl9W8LRxlzf4RERERERVRoT+Tom62Eu4tb9BUhAm56N4NFNqe+QiKqEtkr0/m2VeN/fAy0crPUcHREREZHugoODsX79+hLLL1++DHd3dz1ERIaCiXwdUlgoInbNeeRmqWDvao2eg1vqOySiSssvEPHDsRv4Kv6yuhJ956YNMCugFTo3tdNzdERERESV4+/vj6ioKI1lDg4OGu/z8/NZyK+OYaWnOuSPn64i7dpjKMzl8B/XDiamFa+SSKRvkiThlzO30T/iAOb+fB4PsvPR3N4K37zTGdve82YST0RERLWCmZkZlEqlxqtv374ICQlBaGgo7O3t4efnBwA4cOAAunbtCjMzMzg7OyM8PBwFBQUAgJSUFAiCUOLVu3dv9b5+//139OzZExYWFnB1dcXkyZORnZ2tXu/m5obFixdj1KhRsLGxQZMmTbB69eoa/XlQESbydcS1xLtI3JcKAOgT1Br1HKru+ZlENe3otfsIXHkYEzedxPX7ObC3NsOiwHaIndoLfm2VrEhLREREZZIkCTn5BVXyepJfqFN7SZKq5BjWr18PhUKBQ4cOYdWqVfj7778REBCALl264PTp04iMjMTatWuxaNEiAICrqytu376tfp06dQoNGzZEr169AABXr16Fv78/Bg0ahDNnzmDLli34/fffERISorHfL774Al5eXjh16hQmTJiA8ePHIykpqUqOicqPU+vrgMd3nyB+/QUAQMe+rmjxoqOeIyKqmMt3MvHJnovYd4GV6ImIiKjinqgK0WZOrF72/dcCP1gqyv93y65du2Bt/U+9n4EDBwIAWrZsiU8//VS9/IMPPoCrqyuWL18OQRDQqlUr3Lp1C2FhYZgzZw7kcjmUyqL6WLm5uQgMDIS3tzfmzZsHAFiyZAlGjBiB0NBQdf9ff/01fHx8EBkZCXPzoqLBAQEBmDBhAgAgLCwMERER2L9/Pzw8PCr8MyHd8S/fWq5AVYjYNeeQ/6QAyua28H6jhb5DItIZK9ETERFRXeXr64vIyEj1eysrKwwbNgydO3fWaHfhwgV4e3trzEzs0aMHsrKycPPmTTRp0kS9fNSoUcjMzERcXBxksqJJ2qdPn8aZM2fw/fffq9tJkgRRFJGcnIzWrVsDADp06KBeLwgClEol0tPTq/ag6bmYyNdyh7Zewd0bmTC3MsWAMe0gl/NuCjIembkqrD54DWt++6cSvV9bJ8zwb8VK9ERERFRhFqZy/LXAr9L9iKKIzIxM2NjaqBPi8uxbF1ZWVlor1FtZVewR0osWLUJsbCyOHTsGGxsb9fKsrCz85z//weTJk0ts8/SXAKamphrrBEGAKIoVioUqjol8LXbpWBrOHfwbANBvVBvY2PHKJRmH4kr0X8dfxv2nKtHPHNgKXm4sYkdERESVIwiCTtPbSyOKIgoUclgqTMqdyFeX1q1bY/v27ZAkSX1V/tChQ7CxsUHjxo0BANu3b8eCBQuwe/dutGihOVO3U6dO+Ouvv/hYOyPBRL6WenA7G/u/Lyo60XlgUzRt21DPERE9nyRJiDmbhs9iLyLlfg4AoLm9FWb4t4JfWycWsSMiIiIqxYQJE7B06VJMmjQJISEhSEpKwty5czFt2jTIZDKcO3cO7777LsLCwtC2bVukpaUBABQKBezs7BAWFoaXXnoJISEhGDNmDKysrPDXX38hLi4Oy5cv1/PR0bOYyNdCqryi++IL8grh4lEfXV9rru+QiJ7r6LX7WLL7IhJTHwEA7K3NENqvJYZ0cYUpbwkhIiIiKpOLiwtiYmLw/vvvo2PHjrCzs8Po0aMxe/ZsAMCff/6JnJwcLFq0SF3JHgB8fHyQkJCADh064MCBA/jggw/Qs2dPSJKEFi1aYMiQIfo6JCoDE/laRpIkHPghCQ9uZcPSVoH+o9pCJuNVTDJcV9Iz8fHuJOy7cAcAK9ETERERFYuOjta6PCEhQetyHx8fHDt2TOu64OBgBAcHl7m/Ll26YO/evaWuT0lJKbEsMTGxzD6pevCv5FrmwqHbSPojDYIADBjdFlb1zPQdEpFWdzJysXTfJWw5/k8l+qFdXDGlHyvRExERERGVhYl8LXI3NRMHN18CAHT7d3O4eDTQc0REJRVXov/2t2Q8URUCYCV6IiIiIiJdMJGvJfKeFCB29TkUFoho2q4hOg1oqu+QiDRoq0TfqUl9zApozUr0REREREQ6YCJfC0iShP0bLuLx3SewtjNDv+A2EHhfPBkISZKw+1waPt3DSvRERERERFWBiXwtcP7ALVw9dRcyuQC/se1gbm2q75CIAADHkh9gccyFpyrRKxDa7wVWoiciIiIiqgQm8kYu75EMf+xNBgB0H+QOZbN6eo6ISHsl+rE9m2Nsr+awZiV6IiIiIqJK4V/URiw3W4UHpywgFkpo8aIDOvg21ndIVMexEj0RERERUfVjIm+kJFHC/g1JKMyVwdbBHL7vtua9xqQ32irRD2hTVIne3ZGV6ImIiIiIqhITeSMlihKsG5gBMgn9R7WGmQWHkmqeqrCoEv1X+1iJnoiIiIioprDalJGSm8jQc2hLKHtmo2FjXvGkmiVJEmLO3saAiIOYs/M87mfno7m9FVa93Qnbx3dnEk9ERERkAHr37o3Q0FD1ezc3NyxdurRa9hUdHY369etXS9815dmflyFjIm/kTCwlfYdAdcyx5Ad4I/IwJnx/Esn3smFvrcDCwHaIndoL/u2ceYsHERERURUJDg6GIAglXleuXNFLPAkJCVrjmT17NoYMGYJLly5V277d3Ny07rv4FRwcXOl9/Pjjj1i4cGHlg60BnI9NROXybCV6C1M5xvViJXoiIiKi6uTv74+oqCiNZQ4ODnqKpkhSUhJsbW3V762trWFhYQELC4tq2+fx48dRWFhUi+nw4cMYNGiQRhxVsW87O+OZVcor8kRUpvSMXMz88SwGRBzEvgt3IJcJGN6tCQ683xtT+7/AJJ6IiIioGpmZmUGpVGq85HI5goODERgYqNE2NDQUvXv3Lle/o0aNwquvvqqxTKVSwdHREWvXri1zW0dHR414rK2tS0ytnzdvHjw9PfHdd9/Bzc0N9erVw9ChQ5GZmaluI4oilixZgmbNmsHCwgIdO3bEtm3btO7TwcFBvb/ihLs4jj179qBp06Ya7Xfs2KExU/Tjjz9Gp06dyoxH260IixcvxqhRo2BjY4MmTZpg9erVGvs5fPgwPD09YW5uDi8vL/V+ExMTy/wZVhYTeSLSKiuvAF/uTYLPZwn44dgNiFJRJfrY0F5Y/Hp7ONrycXJERERkpCQJyM+umpcqR7f2kmHcGjtmzBjs2bMHt2/fVi/btWsXcnJyMGTIkCrZx9WrV7Fjxw7s2rULu3btwoEDB/Dxxx+r1y9ZsgQbNmzAqlWrcP78eUydOhVvv/02Dhw4UCX71zUebb744gt4eXnh1KlTmDBhAsaPH4+kpCQAQEZGBl577TW0b98eJ0+exMKFCxEWFlYtsT+Ll9KISAMr0RMREVGtp8oBFjeqdDcyAPV13WjWLUBhVe7mu3btgrX1P8WtBw4ciK1bt+q61xK6d+8ODw8PfPfdd5gxYwYAICoqCm+99ZbG/rRp3Lixxvvr169rbSeKIqKjo2FjYwMAeOeddxAfH4+PPvoIeXl5WLx4Mfbt2wdvb28AQPPmzfH777/jm2++gY+PT2UPUad4ShMQEIAJEyYAAMLCwhAREYH9+/fDw8MDmzZtgiAIWLNmDczNzdGmTRv8/fffGDt2bJXH/iwm8kQEoKgS/Z5zafg0NgnJ97IBAM3srRDm7wG/tkoWsSMiIiLSA19fX0RGRqrfW1mV/0uA5xkzZgxWr16NGTNm4M6dO9i9ezd+/fXX527322+/qZNhAGjQoIHWdm5ubhrtnJ2dkZ6eDgC4cuUKcnJy0L9/f41t8vPz8eKLLwIA2rZtq/6SoGfPnti9e7duB6hDPKXp0KGD+t+CIECpVKq3SUpKQocOHWBu/s9M1a5du1YqxvLSeyK/YsUKfPbZZ0hLS0PHjh2xbNmyMg/+0aNH+OCDD/Djjz/iwYMHaNq0KZYuXYqAgIAK90lU1x1LfoAluy/g1I1HAAB7awWm9G2JoV2bwFTOO3CIiIioljG1LLoyXkmiKCIjMxO2NjaQycr5N5OppU77sLKygru7e4nlMpkM0jPT9FUqlU59v/vuuwgPD8eRI0dw+PBhNGvWDD179nzuds2aNSvXo+ZMTU013guCAFEUAQBZWVkAgF9++QUuLi4a7czMzAAAMTEx6mMqq5hdeX8WZcVTkWPQJ70m8lu2bMG0adOwatUqdOvWDUuXLoWfnx+SkpLg6OhYon1+fj769+8PR0dHbNu2DS4uLrh+/brGL5GufRLVZVfSM/HJniTE/fVPJfqxvZpjHCvRExERUW0mCDpNby+VKAKmhUV9lTeRryIODg44d+6cxrLExMQSiWdZGjZsiMDAQERFReHIkSMYOXJkVYdZqjZt2sDMzAw3btwodRr9swXsSuPg4IDMzExkZ2erZyxUd7E5APDw8MDGjRuRl5en/vLh+PHj1b5fQM/F7r788kuMHTsWI0eORJs2bbBq1SpYWlpi3bp1WtuvW7cODx48wI4dO9CjRw+4ubnBx8cHHTt2rHCfRHXR05Xo4/7SrEQ/jZXoiYiIiAxenz598Oeff2LDhg24fPky5s6dWyKxL48xY8Zg/fr1uHDhAoKCgqohUu1sbGwwffp0TJ06FevXr8fVq1dx8uRJLFu2DOvXr9epr27dusHS0hKzZs3C1atXsWnTJkRHR1dP4E8ZPnw4RFHEuHHjcOHCBcTGxuLzzz8HgGq/LVVvf63n5+fjxIkTmDlzpnqZTCZDv379cOTIEa3b/Pzzz/D29sbEiROxc+dOODg4YPjw4QgLC4NcLq9QnwCQl5eHvLw89fuMjAwARdMxdJ2eUpOKYzPkGMmwxikrrwBrf0/B2kMpeKIqmhLUv7Uj/tu/JVo4FH17aQhx6oMhjRNpxzEyDhwn48BxMnwco6qlUqkgSRJEUazSadHF07mL+65qkiSV2nf//v0xe/ZszJgxA7m5uRg5ciTeeecdnDt3TqP9s9s/+75Pnz5wdnZGmzZtoFQqyzyO4nXafo5Pryvez9PvtS2bP38+7O3tsWTJEly7dg3169fHiy++iJkzZ+oUR/369bFhwwaEhYVhzZo16NOnD+bMmYP33nsPoihqTLsvK57y/LyeXmZtbY2dO3di4sSJ8PT0RPv27TF79my8/fbbUCgUWo+hOB6VSgW5XK6xTpfzXZCevZmghty6dQsuLi44fPiwukohAMyYMQMHDhzA0aNHS2zTqlUrpKSkYMSIEZgwYQKuXLmCCRMmYPLkyZg7d26F+gSKnnE4f/78Ess3bdoES0vd7mEhMkSFInA4XcCemzJkqYq+HXSzlvCvpoVoYavn4IiIiIiqmYmJCZRKJVxdXaFQKPQdjkHJyspCmzZtsGLFCrz22mv6Dsfo/e9//0NISAiuX7+u9b7+/Px8pKamIi0tDQUFBRrrcnJyMHz4cDx+/Bi2tmX/kW5U82dFUYSjoyNWr14NuVyOzp074++//8Znn32GuXPnVrjfmTNnYtq0aer3GRkZcHV1xYABA577A9QnlUqFuLg49O/fX6d7Yahm6XOcJElC7F/piIi7jJT7OQAAt4aW+G//lvBr48hK9E/h+WT4OEbGgeNkHDhOho9jVLVyc3ORmpoKa2trjQrjlSVJEjIzM2FjY2N0f1eJooh79+7h66+/RoMGDTBkyBCYmBhVelhu1TlOGzZsQPPmzeHi4oLTp09jwYIFeOutt+Dk5KS1fW5uLiwsLNCrV68Sv4vFM8PLQ28jZW9vD7lcjjt37mgsv3PnDpRKpdZtnJ2dYWpqqjEFoXXr1khLS0N+fn6F+gSKqiIWFyd4mqmpqVH8j9NY4qzranqcjqc8wOKYfyrRN7RSILQfK9E/D88nw8cxMg4cJ+PAcTJ8HKOqUVhYCEEQIJPJyl9dvhyKp04X921Mbty4gWbNmqFx48aIjo6u1TMVqnOc0tPTMW/ePKSlpcHZ2RlvvfUWPvroo1L3I5PJIAiC1nNbl3Ndb4m8QqFA586dER8fj8DAQABFP+D4+HiEhIRo3aZHjx7YtGkTRFFU/2AuXboEZ2dn9S+ern0S1TZX0rPwyZ6LmpXoezbDOJ8WLGJHRERERACKnqmup7usa5UZM2ZgxowZNb5fvf5VP23aNAQFBcHLywtdu3bF0qVLkZ2drX7swbvvvgsXFxcsWbIEADB+/HgsX74cU6ZMwaRJk3D58mUsXrwYkydPLnefRLVVekYulsZfxpbjqSgUJchlAgZ7uWJqv5ZwtK26KWRERERERKRfek3khwwZgrt372LOnDlIS0uDp6cn9uzZo76f4MaNGxpTElxdXREbG4upU6eiQ4cOcHFxwZQpUxAWFlbuPolqm6y8Aqw+eA1rDl7DE1UhAKB/GyeE+XvA3dFGz9EREREREVFV0/s825CQkFKnvSckJJRY5u3tjT/++KPCfRLVFqpCEZuP3cBX8ZdxLysfAPBik/qYFdAaXdzs9BwdERERERFVF70n8kSkG0mSsOdcGj6NTULyvWwARZXow/xbwb+d0ugqphIRERERkW6YyBMZkeMpD7Ak5gJOPlWJfkq/lhjGSvRERERERHUGE3kiI3AlPQuf7rmIvc9Uoh/bqzlszPlIGiIiIiKiuoSJPJEBS8/MxdJ9/1SilwnAkC5NWImeiIiIiJCSkoJmzZrh1KlT8PT0rFAfvXv3hqenJ5YuXVqlsVH14lxcIgOUlVeAL+MuofdnCdh09AYKRQn92zhh79ReWPJGeybxRERERHVAcHAwBEFQvxo2bAh/f3+cOXMGQNFTvW7fvo127doBKCoWLggCHj16VGY/xa8rV67gxx9/xMKFC9Vt3dzcmNQbAV6RJzIgqkIRm4+n4qt9l9SV6D1diyrRd23GSvREREREdY2/vz+ioqIAAGlpaZg9ezZeffVV3LhxA3K5HEqlUud+ijk4OEAul1d5zFT9eEWeyAAUVaK/Db+Ig/hwxzncy8qHW0NLrBzRCT9N6M4knoiIiKiOMjMzg1KphFKphKenJ8LDw5Gamoq7d+8iJSUFgiAgMTERKSkp8PX1BQA0aNAAgiAgODhYaz/FL7lcjt69eyM0NBRA0TT769evY+rUqeqr9mSYeEWeSM/+THmAxaxET0RERFRjJEnCk4Inle5HFEU8KXgCE5UJZLLy/d1mYWJR4QQ5KysLGzduhLu7Oxo2bIjs7Gz1OldXV2zfvh2DBg1CUlISbG1tYWFhoVP/P/74Izp27Ihx48Zh7NixFYqRagYTeSI9YSV6IiIiIv14UvAE3TZ108u+jw4/CktTy3K337VrF6ytrQEA2dnZcHZ2xq5du0p8cSCXy2FnVzSL09HREfXr1y+1HwAYOHAgtm7dqtHGzs4OcrkcNjY25Z6yT/rBRJ6ohmmvRO+K0H4vwIlF7IiIiIjoKb6+voiMjAQAPHz4ECtXrsTAgQNx7NixCvcDAFZWVlUaJ9UsJvJENSQrrwDRCclY89s15OQXAgD6tXZCmL8HWjrZ6Dk6IiIiorrDwsQCR4cfrXQ/oigiMzMTNjY2Ok2t14WVlRXc3d3V77/99lvUq1cPa9aswZgxYyrcDxk3JvJE1UxVKOL3NAELIn7H/eyiSvQdXetj1sBW6Na8oZ6jIyIiIqp7BEHQaXp7aURRRIFJASxNLcudyFeWIAiQyWR48qTkPf4KhQIAUFhYWOH+FQpFpbanmsFEnqiaSJKE2PN38MnuC0i+LwdQVIl+hn8rDGynZBVQIiIiInquvLw8pKWlASiaWr98+XJkZWXhtddeK9G2adOmEAQBu3btQkBAACwsLDTuiy8PNzc3HDx4EEOHDoWZmRns7e2r5DioarEkNlE1+DPlAd5cdQTvbTyB5Ps5sDaRMPfVVoib5oOA9s5M4omIiIioXPbs2QNnZ2c4OzujW7duOH78OLZu3YrevXuXaOvi4oL58+cjPDwcTk5OCAkJ0Xl/CxYsQEpKClq0aAEHB4cqOAKqDrwiT1SFtFWiH9m9KZrmXMIb3fg4OSIiIiIqv+joaERHR5e63s3NDZIkaSz78MMP8eGHH5bopzQJCQka71966SWcPn1a11CphjGRJ6oC6Zm5+GrfZWzWUonezkKOmJhL+g6RiIiIiIhqCSbyRJWQnVeA1QevPVOJ3hFh/q3UlehVKpU+QyQiIiIiolqGiTxRBagKRWw5noql+y7jXlYeAFaiJyIiIiKimsFEnkgHxZXoP91zEdfuZQMAK9ETEREREVGNYiJPVE4nrj/A4piLOHH9IQCgoZUCk/u2xLCuTaAwYRE7IiIiIiKqGUzkiZ7j6t2iSvSx54sq0ZubyjC2Z3OM69UcNuameo6OiIiIiIjqGibyRKXQVol+sJcrpvZ/AU625voOj4iIiIiI6igm8kTPyM4rwJrfrmH1wdIr0RMREREREekLE3mi/8NK9EREREREZAyYyFOdp65EH3sR1+4WVaJv2tASM/xaIaA9K9ETERERUd2WkpKCZs2a4dSpU/D09NR3OASApbapTjtx/QHeXHUE7208gWt3s2FnpcD8f7VF3FQfvNLBmUk8EREREelNcHAwBEGAIAhQKBRwd3fHggULUFBQoG6TkJCgblPaKyEhoVJxuLq64vbt22jXrl0lj4iqCq/IU52krRL9mJeb4z8+rERPRERERIbD398fUVFRyMvLQ0xMDCZOnAhTU1PMnDkTANC9e3fcvn1b3X7KlCnIyMhAVFSUepmdnV2lYpDL5VAqlZXqg6oWr8hTnXI3Mw+zd5zFgIiDiD1/BzIBGNrFFQnTfTHdz4NJPBEREVEdIEkSxJycqnk9eaJTe0mSdIrVzMwMSqUSTZs2xfjx49GvXz/8/PPP6vUKhQJKpVL9srCwUG+jVCoxdOhQzJgxQ6PPwMBABAcHq9+7ublh8eLFGDVqFGxsbNCkSROsXr1avT4lJQWCICAxMRHAP7MA4uPj4eXlBUtLS3Tv3h1JSUka+1m0aBEcHR1hY2ODMWPGIDw8nFPzqwivyFOdwEr0RERERFRMevIESZ06V1l/d3Ro63HyBARLywrvy8LCAvfv36/w9qX54osvsHDhQsyaNQvbtm3D+PHj4ePjAw8Pj1K3+eCDD/DFF1/AwcEB7733HkaNGoVDhw4BAL7//nt89NFHWLlyJXr06IHNmzfjiy++QLNmzao89rqIiTzValor0Teuh5kBrfESK9ETERERkZGQJAnx8fGIjY3FpEmTqrz/gIAATJgwAQAQFhaGiIgI7N+/v8xE/qOPPoKPjw8AIDw8HK+88gpyc3Nhbm6OZcuWYfTo0Rg5ciQAYM6cOdi7dy+ysrKqPPa6iIk81UqSJGHvX3fwyR5WoiciIiIiTYKFBTxOnqh0P6IoIiMzE7Y2NpDJynfXsmBhodM+du3aBWtra6hUKoiiiOHDh+PVV1+FtbW1us0333yDESNG6NTvszp06PBPjIIApVKJ9PT0cm/j7OwMAEhPT0eTJk2QlJSk/mKgWNeuXfHrr79WKk4qwkSeap0T1x9gccxFnLj+EABgZ6XA5D7uGN6tKRQmLAtBREREVNcJglCp6e1qoghZQQFklpblTuR15evri8jISCgUCjRq1AgmJiZ48uSJ+n51AHBycip1e5lMVuK+fJVKVaKdqalmrShBECCKYpmxPb1N8YWy521DVYOJPNUa1+5m4dM9SdhzPg0AK9ETERERkfGzsrKCu7u7xjILC4sSy0rj4OCgUdW+sLAQ586dg6+vb5XG+SwPDw8cP34c7777rnrZ8ePHq3WfdQkTeTJ6dzPz8FX8JfxwLBWFogSZAAz2ckVovxegrGeu7/CIiIiIiPSmT58+mDZtGn755Re0aNECX375JR49elTt+500aRLGjh0LLy8vdO/eHVu2bMGZM2fQvHnzat93XcBEnoxWcSX6NQevIfv/KtH3beWIsIGt8AIr0RMRERERYdSoUTh9+jTeffddmJiYYOrUqdV+NR4ARowYgWvXrmH69OnIzc3F4MGDERwcjGPHjlX7vusCJvJkdAoKRWz5MxURcaxET0RERES1V3R0dKW3MTU1xcqVK7Fy5cpSt0lJSSmx7Ol78N3c3DTus+/du3eJ++49PT1LLPvwww/x4Ycfqt/379+/3LcEUNmYyJPR0FaJvomdJWb4e+CV9s6sRE9EREREZCBycnKwatUq+Pn5QS6X44cffsC+ffsQFxen79BqBSbyZBROXH+IJTEX8Ccr0RMRERERGTxBEBATE4OPPvoIubm58PDwwPbt29GvXz99h1YrMJEng8ZK9ERERERExsfCwgL79u3Tdxi1FhN5Mkh3M/PwdfxlbDp2Q12J/q3Orpjan5XoiYiIiIiobmMiTwYlO68A3/6WjNUHr7ISPRERERERkRYGcXPxihUr4ObmBnNzc3Tr1q3MRxJER0dDEASNl7m55hXa4ODgEm38/f2r+zCoEgoKRXx/9Dp6f56AiH2XkJ1fiI6N6+GHsS9hbXAXJvFERERERET/R+9X5Lds2YJp06Zh1apV6NatG5YuXQo/Pz8kJSXB0dFR6za2trZISkpSv9dWrdzf3x9RUVHq92ZmZlUfPFWaJEmI+79K9FdZiZ6IiIiIiOi59J7If/nllxg7dixGjhwJAFi1ahV++eUXrFu3DuHh4Vq3EQQBSqWyzH7NzMye24b06+SNokr0x1NYiZ6IiIiIiKi89Jot5efn48SJExqPIJDJZOjXrx+OHDlS6nZZWVlo2rQpXF1d8e9//xvnz58v0SYhIQGOjo7w8PDA+PHjcf/+/Wo5BtLdtbtZGL/xBN5YeRjHUx7C3FSGib4tkPB+bwT3aMYknoiIiIiIqAx6vSJ/7949FBYWwsnJSWO5k5MTLl68qHUbDw8PrFu3Dh06dMDjx4/x+eefo3v37jh//jwaN24MoGha/RtvvIFmzZrh6tWrmDVrFgYOHIgjR45ALpeX6DMvLw95eXnq9xkZGQAAlUoFlUpVVYdb5YpjM+QYn3YvKw/L91/D5j9vqivRD+rkgsl9WkBpW1TnwFiORRfGNk51FcfJ8HGMjAPHyThwnAwfx6hqqVQqSJIEURQhimKV9StJkvq/VdlvTZg/fz5WrVqF9PR0bN++HTt37sSjR4/w008/6Ts0rRISEtC3b1/cv38f9evX12lbQxonURQhSRJUKlWJ3FSX812Qio9KD27dugUXFxccPnwY3t7e6uUzZszAgQMHcPTo0ef2oVKp0Lp1awwbNgwLFy7U2ubatWto0aIF9u3bh759+5ZYP2/ePMyfP7/E8k2bNsHS0lKHIyJt8gqB/bcE/HpLhjyx6J73NvVFvNZURCP+eImIiIiompmYmECpVMLV1RUKhULf4ZTbhAkT8MMPPwAATE1N0bhxYwwdOhTTpk2DiUnFr8kmJSXhpZdewsaNG+Hl5YX69esjNzcXAFCvXj2d+9u0aRMmTpxYZpvTp0+jSZMmFYoXKJrN/fDhQzg6Ohp1Ha38/HykpqYiLS0NBQUFGutycnIwfPhwPH78GLa2tmX2o9cr8vb29pDL5bhz547G8jt37pT7/nZTU1O8+OKLuHLlSqltmjdvDnt7e1y5ckVrIj9z5kxMmzZN/T4jIwOurq4YMGDAc3+A+qRSqRAXF4f+/fvD1NRU3+GUUFAoYtvJW/j61yu4m5UPAOjgYosZfi+gWzM7PUdXcwx9nKgIx8nwcYyMA8fJOHCcDB/HqGrl5uYiNTUV1tbWJZ54VRmSJCEzMxM2NjbVklyamprCz88P69atQ15eHmJiYjBp0iRYW1trrSeWn59fri8qivOvoUOHVkncQUFBCAwMVL9/88030bZtW42LpQ4ODlpnR+vC3t6+QttV9zjpIjc3FxYWFujVq1eJ38XimeHloddEXqFQoHPnzoiPj1cPvCiKiI+PR0hISLn6KCwsxNmzZxEQEFBqm5s3b+L+/ftwdnbWut7MzExrVXtTU1Oj+B+nocXJSvTaGdo4kXYcJ8PHMTIOHCfjwHEyfByjqlFYWAhBECCTySCTySBJEgryKz/FWhRFFOQXoiBfhExWvjpPJgpZuf8eLn7UdqNGjQAAEydOxM6dO/H//t//w6xZsxAcHIxHjx6hS5cuWLFiBczMzJCcnIzU1FT897//xd69eyGTydCzZ0989dVXcHNz05iNXHxVX5IkdV87duzA3bt30b59e0yePBmzZs0CABw+fBi9e/fG7t27S1wctbKygpWVlfq9QqGAlZWVOm43NzeEhoYiNDRU3cbT0xOBgYGYN2+e+ljXrFmDX375BbGxsXBxccEXX3yBf/3rXwCKptb7+vri4cOHqF+/PqKjoxEaGootW7YgNDQUqampePnllxEVFaXO+woKCjBt2jRs2LABMpkMY8aMwZ07d/D48WPs2LGjXGNQ1WSyovHXdm7rcq7rvWr9tGnTEBQUBC8vL3Tt2hVLly5Fdna2uor9u+++CxcXFyxZsgQAsGDBArz00ktwd3fHo0eP8Nlnn+H69esYM2YMgKJCePPnz8egQYOgVCpx9epVzJgxA+7u7vDz89PbcdYVz1aib2Bpisl9W2IEK9ETERERkYEoyBexesoBvex73Fc+MDWr+JVpCwsLjULe8fHxsLW1RVxcHICi2Rx+fn7w9vbGb7/9BhMTEyxatAj+/v44c+YMpk+fDjc3N4wcORK3b9/Wug8HBwesW7cOgYGBGDBgADw8PPDOO+8gJCRE6wznqjJ//nx8+umn+Oyzz7Bs2TKMGDEC169fh52d9tm8OTk5+Pzzz/Hdd99BJpPh7bffxvTp0/H9998DAD755BN8//33WLt2LVxdXbFu3Trs2LEDvr6+1XYMNUXvifyQIUNw9+5dzJkzB2lpafD09MSePXvUBfBu3Lih8e3Ww4cPMXbsWKSlpaFBgwbo3LkzDh8+jDZt2gAA5HI5zpw5g/Xr1+PRo0do1KgRBgwYgIULF/JZ8tXo2t0sfBabhN3n0gAAZiYyjOnZDP/xaQFbc36LTERERERUGZIkIT4+HrGxsZg0aZJ6uZWVFb799lv1lPqNGzdCFEV8++236iv/UVFRqF+/PhISEjBgwAB1sbiybmcOCAjA2LFjMWLECHh5ecHKykp9cbW6BAcHY9iwYQCAxYsX4+uvv8axY8fg7++vtb1KpcKqVavQokULAEBISAgWLFigXr9s2TLMnDkTr7/+OjIyMrBs2TLs3r27Wo+hpug9kQeKfuClTaVPSEjQeB8REYGIiIhS+7KwsEBsbGxVhkdluJuZh6/jL+OHYzdQ8H+V6N/s3BhT+78A53oW+g6PiIiIiKgEE4UM477yqXQ/oigiMzMDNja2Ok2t18WuXbtgbW0NlUoFURQxfPhw9XR0AGjfvr3GffGnT5/GlStXYGNjo9FPbm4url69qtO+P//8c7Rr1w5bt27FiRMnqv3CaIcOHdT/trKygq2tLdLT00ttb2lpqU7iAcDZ2Vnd/vHjx7hz5w66du2qXi+Xy9G5c2e9V66vCgaRyJPxyckvwLe/JeObA1eRnV8IAOjTyhFh/q3gobR5ztZERERERPojCEKlprcXE0UBJnlymJrJy53I68rX1xeRkZFQKBRo1KhRiWr1T9+bDhTdaty5c2f19PKnOTg46LTvq1ev4tatWxBFESkpKWjfvr3uBwCo6xI8Tduj1p69R1wQhDKTbm3t9fhQthrFRJ50UlAo4n9/3kTEvku4m5kHAOjQuB5mDmwN7xYN9RwdEREREVHtYmVlBXd393K379SpE7Zs2QJHR8dKPYErPz8fb7/9NoYMGQIPDw+MGTMGZ8+ehaOjo859OTg4aNyPn5GRgeTk5ArHVh716tWDk5MTjh8/jpdffhlAUdHDkydPwtPTs1r3XRNYfYzKRZIk7D2fBr+lBzHrp7O4m5kHVzsLLBv2InZM6MEknoiIiIjIAIwYMQL29vb497//jd9++w3JyclISEjA5MmTcfPmzXL388EHH+Dx48f4+uuvERYWhhdeeAGjRo2qUEx9+vTBd999h99++w1nz55FUFBQpR9FVx6TJk3CkiVLsHPnTly+fBmhoaF4+PBhrXiKFq/I03OxEj0RERERkXGwtLTEwYMHERYWhjfeeAOZmZlwcXFB3759y32FPiEhAUuXLsX+/fvV23z33Xfo2LEjIiMjMX78eJ1imjlzJpKTk/Hqq6+iXr16WLhwYbVfkQeAsLAwpKWlITg4GDKZDOPGjYOfn1+NfIlQ3ZjIU6mS72Xjs9iLiDn7TyX60S83w3u9WYmeiIiIiKi6RUdHV2i9UqnE+vXrS90uMDCwxL3kT/fVu3fvEvewu7m54fHjx2XGU+zZguW2trbYvHmzxrKgoCCN99rubX/06JFGTE+3CQ4ORnBwsEb7Z4/LxMQEy5Ytw1dffYWMjAxYW1ujbdu2GDx4cLmOw5AxkacS7mUVVaLfdJSV6ImIiIiIyDhdv34de/fuRc+ePXH//n2sX78eycnJGD58uL5DqzQm8qTGSvRERERERFRbyGQyREdHY/r06ZAkCe3atcO+ffvQunVrfYdWaUzkSV2Jfum+S0h/qhJ9+MBW6N7CXs/RERERERER6c7V1RWHDh2CKIrIyMiAra1ttT0msKYxka/DJEnCvgvp+Hj3BVy9mw0AcLWzwPt+rfBqe2fIZMZfzZGIiIiIiKi2YSJfR5268RBLYi7iWMoDAEWV6Cf1aYkRLzWBmYnxV3EkIiIiIiKqrZjI1zGsRE9ERERERGTcmMjXEc9WohcE4C1WoiciIiIiIjI6TORrOW2V6H09HBA2sBVaKW31HB0RERERERHpiol8LVVQKGLriZuIiPunEn17l3qYGcBK9ERERERERMaMiXwtU1yJ/pM9F3ElPQsAK9ETERERERHVJrXjIXoEoKgS/ZBv/sDYDX/iSnoWGliaYs6rbbBvmg/+1bERk3giIiIiIiMSHByMwMDACm8rCAIEQYCpqSmaNWuGGTNmIDc3t0TbmzdvQqFQoF27dpWMmGoKr8jXAin3sxERf5WV6ImIiIiISM3f3x9RUVFQqVQ4ceIEgoKCIAgCPvnkE4120dHRGDx4MA4ePIijR4+iW7dueoqYyouJvBG7n5WHbckyHDl6WF2J/s1OjTFtACvRExERERGVRpIkFOTlVbofURShysuFKlcBmax8k51NzMwgCJWfKXvgwAG8//77OH36NOzs7BAUFIRFixbBxOSfFM/MzAxKpRIA4Orqin79+iEuLk4jkZckCVFRUVi5ciUaN26MtWvXMpE3AkzkjVRBoYjXVx3F7ccyABIr0RMRERERlVNBXh6+DnpTL/uevH4bTM3NK9XH33//jYCAAAQHB2PDhg24ePEixo4dC3Nzc8ybN0/rNufOncPhw4fRtGlTjeX79+9HTk4O+vXrBxcXF3Tv3h0RERGwsrKqVIxUvZjIGykTuQwjurpiy+FL+GiwF3p5KPUdEhERERER1YCVK1fC1dUVy5cvhyAIaNWqFW7duoWwsDDMmTNHPTtg165dsLa2RkFBAfLy8iCTybB8+XKNvtauXYuhQ4dCLpejXbt2aN68ObZu3Yrg4GA9HBmVFxN5IzaqR1O4ZF6Ad/OG+g6FiIiIiMhomJiZYfL6bZXuRxRFZGRmwNbGVqep9ZV14cIFeHt7a0zR79GjB7KysnDz5k00adIEAODr64vIyEhkZ2cjIiICJiYmGDRokHqbR48e4ccff8Tvv/+uXvb2229j7dq1TOQNHBN5I2Yql4GF6ImIiIiIdCMIQqWntwNFibxpfj5Mzc3LncjXJCsrK7i7uwMA1q1bh44dO2Lt2rUYPXo0AGDTpk3Izc3VuCdekiSIoohLly7hhRde0Evc9HyG99tGREREREREpWrdujWOHDkCSZLUyw4dOgQbGxs0btxY6zYymQyzZs3C7Nmz8eTJEwBF0+r/+9//IjExUf06ffo0evbsiXXr1tXIsVDFMJEnIiIiIiIyUI8fP9ZItBMTEzFu3DikpqZi0qRJuHjxInbu3Im5c+di2rRpZc4MeOuttyCXy7FixQokJibi5MmTGDNmDNq1a6fxGjZsGNavX4+CgoIaPFLSBafWExERERERGaiEhAS8+OKLGstGjx6NmJgYvP/+++jYsSPs7OwwevRozJ49u8y+TExMEBISgk8//RRJSUlo06YNWrVqVaLd66+/jpCQEMTExOBf//pXlR4PVQ0m8kRERERERAYoOjoa0dHRpa4/duxYmdtqEx4ejvDw8DL3q1QqUVhYWJ4QSU84tZ6IiIiIiIjIiDCRJyIiIiIiIjIiTOSJiIiIiIiIjAgTeSIiIiIiIiIjwkSeiIiIiIjqhKefu06kD1X1O8hEnoiIiIiIajW5XA4AyM/P13MkVNfl5OQAAExNTSvVDx8/R0REREREtZqJiQksLS1x9+5dmJqaQiarmuuZoigiPz8fubm5VdYnVT1DGCdJkpCTk4P09HTUr19f/eVSRTGRJyIiIiKiWk0QBDg7OyM5ORnXr1+vsn4lScKTJ09gYWEBQRCqrF+qWoY0TvXr14dSqax0P0zkiYiIiIio1lMoFGjZsmWVTq9XqVQ4ePAgevXqVemp0lR9DGWcTE1NK30lvhgTeSIiIiIiqhNkMhnMzc2rrD+5XI6CggKYm5szkTdgtXGceCMHERERERERkRFhIk9ERERERERkRJjIExERERERERkR3iOvhSRJAICMjAw9R1I2lUqFnJwcZGRk1Jp7PWojjpNx4DgZPo6RceA4GQeOk+HjGBkHjpNxMJZxKs4/i/PRsjCR1yIzMxMA4OrqqudIiIiIiIiIqC7JzMxEvXr1ymwjSOVJ9+sYURRx69Yt2NjY6P05g2XJyMiAq6srUlNTYWtrq+9wqBQcJ+PAcTJ8HCPjwHEyDhwnw8cxMg4cJ+NgLOMkSRIyMzPRqFEjyGRl3wXPK/JayGQyNG7cWN9hlJutra1B/0JSEY6TceA4GT6OkXHgOBkHjpPh4xgZB46TcTCGcXrelfhiLHZHREREREREZESYyBMREREREREZESbyRszMzAxz586FmZmZvkOhMnCcjAPHyfBxjIwDx8k4cJwMH8fIOHCcjENtHCcWuyMiIiIiIiIyIrwiT0RERERERGREmMgTERERERERGREm8kRERERERERGhIk8ERERERERkRFhIm/gVqxYATc3N5ibm6Nbt244duxYme23bt2KVq1awdzcHO3bt0dMTEwNRVq36TJO0dHREARB42Vubl6D0dY9Bw8exGuvvYZGjRpBEATs2LHjudskJCSgU6dOMDMzg7u7O6Kjo6s9zrpO13FKSEgocS4JgoC0tLSaCbgOWrJkCbp06QIbGxs4OjoiMDAQSUlJz92On001qyLjxM+mmhcZGYkOHTrA1tYWtra28Pb2xu7du8vchudSzdJ1jHgeGYaPP/4YgiAgNDS0zHbGfj4xkTdgW7ZswbRp0zB37lycPHkSHTt2hJ+fH9LT07W2P3z4MIYNG4bRo0fj1KlTCAwMRGBgIM6dO1fDkdctuo4TANja2uL27dvq1/Xr12sw4ronOzsbHTt2xIoVK8rVPjk5Ga+88gp8fX2RmJiI0NBQjBkzBrGxsdUcad2m6zgVS0pK0jifHB0dqylCOnDgACZOnIg//vgDcXFxUKlUGDBgALKzs0vdhp9NNa8i4wTws6mmNW7cGB9//DFOnDiBP//8E3369MG///1vnD9/Xmt7nks1T9cxAnge6dvx48fxzTffoEOHDmW2qxXnk0QGq2vXrtLEiRPV7wsLC6VGjRpJS5Ys0dp+8ODB0iuvvKKxrFu3btJ//vOfao2zrtN1nKKioqR69erVUHT0LADSTz/9VGabGTNmSG3bttVYNmTIEMnPz68aI6OnlWec9u/fLwGQHj58WCMxUUnp6ekSAOnAgQOltuFnk/6VZ5z42WQYGjRoIH377bda1/FcMgxljRHPI/3KzMyUWrZsKcXFxUk+Pj7SlClTSm1bG84nXpE3UPn5+Thx4gT69eunXiaTydCvXz8cOXJE6zZHjhzRaA8Afn5+pbanyqvIOAFAVlYWmjZtCldX1+d+s0s1j+eScfH09ISzszP69++PQ4cO6TucOuXx48cAADs7u1Lb8HzSv/KME8DPJn0qLCzE5s2bkZ2dDW9vb61teC7pV3nGCOB5pE8TJ07EK6+8UuI80aY2nE9M5A3UvXv3UFhYCCcnJ43lTk5Opd7/mZaWplN7qryKjJOHhwfWrVuHnTt3YuPGjRBFEd27d8fNmzdrImQqh9LOpYyMDDx58kRPUdGznJ2dsWrVKmzfvh3bt2+Hq6srevfujZMnT+o7tDpBFEWEhoaiR48eaNeuXant+NmkX+UdJ3426cfZs2dhbW0NMzMzvPfee/jpp5/Qpk0brW15LumHLmPE80h/Nm/ejJMnT2LJkiXlal8bzicTfQdAVNd4e3trfJPbvXt3tG7dGt988w0WLlyox8iIjIuHhwc8PDzU77t3746rV68iIiIC3333nR4jqxsmTpyIc+fO4ffff9d3KFSG8o4TP5v0w8PDA4mJiXj8+DG2bduGoKAgHDhwoNREkWqeLmPE80g/UlNTMWXKFMTFxdWp4oJM5A2Uvb095HI57ty5o7H8zp07UCqVWrdRKpU6tafKq8g4PcvU1BQvvvgirly5Uh0hUgWUdi7Z2trCwsJCT1FReXTt2pWJZQ0ICQnBrl27cPDgQTRu3LjMtvxs0h9dxulZ/GyqGQqFAu7u7gCAzp074/jx4/jqq6/wzTfflGjLc0k/dBmjZ/E8qhknTpxAeno6OnXqpF5WWFiIgwcPYvny5cjLy4NcLtfYpjacT5xab6AUCgU6d+6M+Ph49TJRFBEfH1/qfTne3t4a7QEgLi6uzPt4qHIqMk7PKiwsxNmzZ+Hs7FxdYZKOeC4Zr8TERJ5L1UiSJISEhOCnn37Cr7/+imbNmj13G55PNa8i4/QsfjbphyiKyMvL07qO55JhKGuMnsXzqGb07dsXZ8+eRWJiovrl5eWFESNGIDExsUQSD9SS80nf1faodJs3b5bMzMyk6Oho6a+//pLGjRsn1a9fX0pLS5MkSZLeeecdKTw8XN3+0KFDkomJifT5559LFy5ckObOnSuZmppKZ8+e1dch1Am6jtP8+fOl2NhY6erVq9KJEyekoUOHSubm5tL58+f1dQi1XmZmpnTq1Cnp1KlTEgDpyy+/lE6dOiVdv35dkiRJCg8Pl9555x11+2vXrkmWlpbS+++/L124cEFasWKFJJfLpT179ujrEOoEXccpIiJC2rFjh3T58mXp7Nmz0pQpUySZTCbt27dPX4dQ640fP16qV6+elJCQIN2+fVv9ysnJUbfhZ5P+VWSc+NlU88LDw6UDBw5IycnJ0pkzZ6Tw8HBJEARp7969kiTxXDIEuo4RzyPD8WzV+tp4PjGRN3DLli2TmjRpIikUCqlr167SH3/8oV7n4+MjBQUFabT/3//+J73wwguSQqGQ2rZtK/3yyy81HHHdpMs4hYaGqts6OTlJAQEB0smTJ/UQdd1R/JiyZ1/F4xIUFCT5+PiU2MbT01NSKBRS8+bNpaioqBqPu67RdZw++eQTqUWLFpK5ublkZ2cn9e7dW/r111/1E3wdoW18AGicH/xs0r+KjBM/m2reqFGjpKZNm0oKhUJycHCQ+vbtq04QJYnnkiHQdYx4HhmOZxP52ng+CZIkSTV3/Z+IiIiIiIiIKoP3yBMREREREREZESbyREREREREREaEiTwRERERERGREWEiT0RERERERGREmMgTERERERERGREm8kRERERERERGhIk8ERERERERkRFhIk9ERER6JwgCduzYoe8wiIiIjAITeSIiojouODgYgiCUePn7++s7NCIiItLCRN8BEBERkf75+/sjKipKY5mZmZmeoiEiIqKy8Io8ERERwczMDEqlUuPVoEEDAEXT3iMjIzFw4EBYWFigefPm2LZtm8b2Z8+eRZ8+fWBhYYGGDRti3LhxyMrK0mizbt06tG3bFmZmZnB2dkZISIjG+nv37uH111+HpaUlWrZsiZ9//rl6D5qIiMhIMZEnIiKi5/rwww8xaNAgnD59GiNGjMDQoUNx4cIFAEB2djb8/PzQoEEDHD9+HFu3bsW+ffs0EvXIyEhMnDgR48aNw9mzZ/Hzzz/D3d1dYx/z58/H4MGDcebMGQQEBGDEiBF48OBBjR4nERGRMRAkSZL0HQQRERHpT3BwMDZu3Ahzc3ON5bNmzcKsWbMgCALee+89REZGqte99NJL6NSpE1auXIk1a9YgLCwMqampsLKyAgDExMTgtddew61bt+Dk5AQXFxeMHDkSixYt0hqDIAiYPXs2Fi5cCKDoywFra2vs3r2b9+oTERE9g/fIExEREXx9fTUSdQCws7NT/9vb21tjnbe3NxITEwEAFy5cQMeOHdVJPAD06NEDoigiKSkJgiDg1q1b6Nu3b5kxdOjQQf1vKysr2NraIj09vaKHREREVGsxkSciIiJYWVmVmOpeVSwsLMrVztTUVOO9IAgQRbE6QiIiIjJqvEeeiIiInuuPP/4o8b5169YAgNatW+P06dPIzs5Wrz906BBkMhk8PDxgY2MDNzc3xMfH12jMREREtRWvyBMRERHy8vKQlpamsczExAT29vYAgK1bt8LLywsvv/wyvv/+exw7dgxr164FAIwYMQJz585FUFAQ5s2bh7t372LSpEl455134OTkBACYN28e3nvvPTg6OmLgwIHIzMzEoUOHMGnSpJo9UCIiolqAiTwRERFhz549cHZ21ljm4eGBixcvAiiqKL9582ZMmDABzs7O+OGHH9CmTRsAgKWlJWJjYzFlyhR06dIFlpaWGDRoEL788kt1X0FBQcjNzUVERASmT58Oe3t7vPnmmzV3gERERLUIq9YTERFRmQRBwE8//YTAwEB9h0JERETgPfJERERERERERoWJPBEREREREZER4T3yREREVCbehUdERGRYeEWeiIiIiIiIyIgwkSciIiIiIiIyIkzkiYiIiIiIiIwIE3kiIiIiIiIiI8JEnoiIiIiIiMiIMJEnIiIiIiIiMiJM5ImIiIiIiIiMCBN5IiIiIiIiIiPCRJ6IiIiIiIjIiPx/yb+odhor67UAAAAASUVORK5CYII=\n"
     },
     "metadata": {}
    }
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "js9P3qilvBqY"
   },
   "source": [
    "## Adapter Tuning\n",
    "\n",
    "Adapter Tuning（论文：Parameter-Efficient Transfer Learning for NLP），该方法设计了Adapter结构，并将其嵌入Transformer的结构里面，针对每一个Transformer层，增加了两个Adapter结构(分别是多头注意力的投影之后和第二个feed-forward层之后)，在训练时，固定住原来预训练模型的参数不变，只对新增的 Adapter 结构和 Layer Norm 层进行微调，从而保证了训练的高效性。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "7Z9iowo6vBqY",
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "outputId": "00914a7c-1d5a-493d-a349-0854bfd259e4"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stderr",
     "text": [
      "/usr/local/lib/python3.10/dist-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "3072\n",
      "3072\n",
      "3072\n",
      "3072\n",
      "3072\n",
      "3072\n",
      "3072\n",
      "3072\n",
      "3072\n",
      "3072\n",
      "3072\n",
      "3072\n",
      "--------------------------------------------------\n",
      "AdapterBert(\n",
      "  (model): BertModel(\n",
      "    (embeddings): BertEmbeddings(\n",
      "      (word_embeddings): Embedding(30522, 768, padding_idx=0)\n",
      "      (position_embeddings): Embedding(512, 768)\n",
      "      (token_type_embeddings): Embedding(2, 768)\n",
      "      (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "      (dropout): Dropout(p=0.1, inplace=False)\n",
      "    )\n",
      "    (encoder): BertEncoder(\n",
      "      (layer): ModuleList(\n",
      "        (0-11): 12 x BertLayer(\n",
      "          (attention): BertAttention(\n",
      "            (self): BertSelfAttention(\n",
      "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (dropout): Dropout(p=0.1, inplace=False)\n",
      "            )\n",
      "            (output): BertSelfOutput(\n",
      "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
      "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "              (dropout): Dropout(p=0.1, inplace=False)\n",
      "              (adapter): AdapterLayer(\n",
      "                (down_project): Linear(in_features=768, out_features=64, bias=True)\n",
      "                (nolinearity): ReLU()\n",
      "                (up_project): Linear(in_features=64, out_features=768, bias=True)\n",
      "              )\n",
      "            )\n",
      "          )\n",
      "          (intermediate): BertIntermediate(\n",
      "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
      "            (intermediate_act_fn): GELUActivation()\n",
      "          )\n",
      "          (output): BertOutput(\n",
      "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
      "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
      "            (dropout): Dropout(p=0.1, inplace=False)\n",
      "            (adapter): AdapterLayer(\n",
      "              (down_project): Linear(in_features=768, out_features=64, bias=True)\n",
      "              (nolinearity): ReLU()\n",
      "              (up_project): Linear(in_features=64, out_features=768, bias=True)\n",
      "            )\n",
      "          )\n",
      "        )\n",
      "      )\n",
      "    )\n",
      "    (pooler): BertPooler(\n",
      "      (dense): Linear(in_features=768, out_features=768, bias=True)\n",
      "      (activation): Tanh()\n",
      "    )\n",
      "  )\n",
      "  (classifier): Linear(in_features=768, out_features=1, bias=True)\n",
      ")\n",
      "--------------------------------------------------\n",
      "Total Parameters:\t 111.86M\n",
      "Frozen Parameters:\t 109.48M\n",
      "Trainable Parameters:\t   2.38M\t2.13%\n"
     ]
    }
   ],
   "source": [
    "class AdapterLayer(nn.Module):\n",
    "    def __init__(self, input_size, adapter_size):\n",
    "        super().__init__()\n",
    "        # 第一个线性层，将输入特征从 input_size 维度降低到 adapter_size 维度\n",
    "        self.down_project = nn.Linear(input_size, adapter_size)\n",
    "        # ReLU 激活函数\n",
    "        self.nolinearity = nn.ReLU()\n",
    "        # 第二个线性层，将适配器层的特征从 adapter_size 维度恢复到原始维度\n",
    "        self.up_project = nn.Linear(adapter_size, input_size)\n",
    "\n",
    "    def forward(self, x):\n",
    "        # 适配器层的前向传播\n",
    "        return self.up_project(self.nolinearity(self.down_project(x)))\n",
    "\n",
    "\n",
    "class BertSelfOutput(nn.Module):\n",
    "    # 自注意力层的输出部分\n",
    "    def __init__(self, config, adapter_size):\n",
    "        super().__init__()\n",
    "        # 原始的全连接层\n",
    "        self.dense = nn.Linear(config.hidden_size, config.hidden_size)\n",
    "        # 原始的LayerNorm 层\n",
    "        self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps)\n",
    "        # 原始的 Dropout 层\n",
    "        self.dropout = nn.Dropout(config.hidden_dropout_prob)\n",
    "        # 插入的适配器层\n",
    "        self.adapter = AdapterLayer(config.hidden_size, adapter_size)\n",
    "\n",
    "    def forward(self, hidden_states: torch.Tensor, input_tensor: torch.Tensor) -> torch.Tensor:#hidden_states经过了多头注意力的投影之后，input_tensor是原始的输入特征\n",
    "        # 自注意力层的输出前向传播\n",
    "        hidden_states = self.dense(hidden_states)\n",
    "        hidden_states = self.dropout(hidden_states)\n",
    "        hidden_states = self.adapter(hidden_states)\n",
    "        hidden_states = self.LayerNorm(hidden_states + input_tensor)\n",
    "        return hidden_states\n",
    "\n",
    "class BertOutput(nn.Module):\n",
    "    # 输出层\n",
    "    def __init__(self, config, adapter_size):\n",
    "        super().__init__()\n",
    "        # 原始的全连接层\n",
    "        # print(config.intermediate_size)\n",
    "        self.dense = nn.Linear(config.intermediate_size, config.hidden_size)\n",
    "        # LayerNorm 层\n",
    "        self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps)\n",
    "        # Dropout 层\n",
    "        self.dropout = nn.Dropout(config.hidden_dropout_prob)\n",
    "        # 插入的适配器层\n",
    "        self.adapter = AdapterLayer(config.hidden_size, adapter_size)\n",
    "\n",
    "    def forward(self, hidden_states: torch.Tensor, input_tensor: torch.Tensor) -> torch.Tensor:\n",
    "        # 输出层的前向传播\n",
    "        hidden_states = self.dense(hidden_states)\n",
    "        hidden_states = self.dropout(hidden_states)\n",
    "        hidden_states = self.adapter(hidden_states)\n",
    "        hidden_states = self.LayerNorm(hidden_states + input_tensor)\n",
    "        return hidden_states\n",
    "\n",
    "\n",
    "class AdapterBert(nn.Module):\n",
    "    def __init__(self, adapter_size=64):\n",
    "        super().__init__()\n",
    "        # 加载预训练的BERT模型\n",
    "        self.model = AutoModel.from_pretrained(\"bert-base-uncased\")\n",
    "        # 获取预训练模型的状态字典\n",
    "        pretrained_state_dict = self.model.state_dict()\n",
    "        # 添加一个线性分类器\n",
    "        self.classifier = nn.Linear(self.model.config.hidden_size, 1)\n",
    "\n",
    "        # 为模型的每层应用适配器\n",
    "        self._apply_adapter(adapter_size=adapter_size)\n",
    "\n",
    "        # 修改预训练状态字典，将适配器层的参数加入\n",
    "        for name, param in self.model.named_parameters():\n",
    "            if \"adapter\" in name:\n",
    "                pretrained_state_dict[name] = param\n",
    "        # 加载修改后的状态字典\n",
    "        self.model.load_state_dict(pretrained_state_dict)\n",
    "\n",
    "        # 冻结除适配器层以外的所有参数\n",
    "        for name, param in self.model.named_parameters():\n",
    "            if \"adapter\" not in name:\n",
    "                param.requires_grad = False\n",
    "\n",
    "        # 删除不再使用的预训练状态字典\n",
    "        del pretrained_state_dict\n",
    "\n",
    "    def _apply_adapter(self, adapter_size):\n",
    "        # 为BERT模型的每层应用适配器层\n",
    "        for layer in self.model.encoder.layer:\n",
    "            layer.attention.output = BertSelfOutput(self.model.config, adapter_size) #注意力输出层重写 attention.output\n",
    "            layer.output = BertOutput(self.model.config, adapter_size) #BertOutput层重写\n",
    "\n",
    "    def forward(self, input_ids, attention_mask, token_type_ids):\n",
    "        # 模型的前向传播\n",
    "        outputs = self.model(input_ids, attention_mask, token_type_ids)\n",
    "        # 提取[CLS]标记的表示作为特征\n",
    "        feature = outputs.last_hidden_state[:, 0, :]\n",
    "        # 使用分类器生成logits\n",
    "        logits = self.classifier(feature)\n",
    "        # 应用sigmoid激活函数得到最终的输出\n",
    "        return torch.sigmoid(logits).squeeze()\n",
    "\n",
    "\n",
    "# 实例化适配器BERT模型\n",
    "adapter_bert = AdapterBert(adapter_size=64)\n",
    "print('-'*50)\n",
    "print(adapter_bert)\n",
    "print('-'*50)\n",
    "# 计算模型参数\n",
    "count_parameters(adapter_bert)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "x1AfyWLDvBqZ"
   },
   "outputs": [],
   "source": [
    "del adapter_bert"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "# 训练模型\n",
    "training_record[\"Adapter Tuning\"] = train(adapter_bert, train_loader, val_loader, device, num_epochs=num_epochs, patience=patience)"
   ],
   "metadata": {
    "id": "dyvfwOvUG0y7"
   },
   "execution_count": null,
   "outputs": []
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "6c71hairvBqZ"
   },
   "source": [
    "## Plot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "1h8Jp1RovBqZ",
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "outputId": "3c6efaee-93b0-42da-8c85-69690f92f39d"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/IAAAINCAYAAACd0URAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADYc0lEQVR4nOz9d3wU170//r9mZpu6AFVU6E1UGxDFIEBUY4NwYhvjxD32vfl+fJN7Sa4/JnGJ48S+95PfdZziG9/ExnaSG2M7dhA2mGIJEBiMMGCaaKJJQqiCymql3dmZ+f2xq9WutCorJO2u9Ho+Hnpo50zZ92ooes05c0bQNE0DEREREREREQUF0d8FEBEREREREVHXMcgTERERERERBREGeSIiIiIiIqIgwiBPREREREREFEQY5ImIiIiIiIiCCIM8ERERERERURBhkCciIiIiIiIKIgzyREREREREREFE5+8CApGqqigtLUVERAQEQfB3OURERERERNTPaZqG+vp6DB06FKLYcZ87g7wXpaWlSElJ8XcZRERERERENMAUFxcjOTm5w20Y5L2IiIgA4PgBRkZG+rma9smyjJ07d2LZsmXQ6/X+LofawfMUHHieAh/PUXDgeQoOPE+Bj+coOPA8BYdgOU91dXVISUlx5dGOMMh70TycPjIyMuCDfGhoKCIjIwP6D+RAx/MUHHieAh/PUXDgeQoOPE+Bj+coOPA8BYdgO09dub2bk90RERERERERBREGeSIiIiIiIqIgwiBPREREREREFEQY5ImIiIiIiIiCCIM8ERERERERURBhkCciIiIiIiIKIgzyREREREREREGEQZ6IiIiIiIgoiDDIExEREREREQURBnkiIiIiIiKiIMIgT0RERERERBREGOSJiIiIiIiIggiDPBEREREREVEQYZAnIiIiIiIiCiIM8kRERERERERBhEGeiIiIiIiIKIjo/F0AERERBRlFBmwNgNwIyBa37xYIjfVIrPkawgUJ0JsASQeIzV96QJQASe/W5vxqr00Q/P1piYiIAg6DPBERUX+i2F2huiVkN7YK3hbPEO5a1wjIbtvZLF7DOlR7u2+vA5AOAJd76PMIovMCQHO4b3VRwNtFANey1LKvzxcU3PfVey63qUPX6ngd1Nbe8UQOkiQioq5jkCciIuorquIZim2tArLXYN16XauA3jp4q3Lf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3fHQx4ZBkNjLTkRERETUH3X7JtixY8di7NixPVkL0YCj1Ntcz2O3OWeNt1daAG/zz4kC9HEhronn9Ilh0CWEYudfz+FySRUihphw//enwhDGXnciIiIiov6sW0G+pKQEW7ZsQVFREWw2z8dUvfbaaz1SGFG/ogJymQW2KqvHo95Us+x1czFU5zYs3vFsdn1cKITmofNOx3YV4fLxKog6ASuemgQTQzwRERERUb/nc5DPycnB6tWrMXLkSJw9exaTJk3ClStXoGkabr/99t6okSioKA2yK6jL182wlZpxW/kg3Dh0ou3GAqCLCfGcMT4xDFKkodPHvF0vrMHBf1wEAMy/bwzihkX2xschIiIiIqIA43OQ37BhA3784x/jpZdeQkREBD7++GPExcXhO9/5DlasWNEbNRIFJE3VYK9ubAntznvalTpbm21FCBCMkseM8YbEcOjiQyEaJJ/fu7Hehh1vnYamahgzIw4TM5J64iMREREREVEQ8DnInzlzBu+//75jZ50OjY2NCA8Px89//nNkZWXh+9//fo8XSeRvapPdNVN88wR09rIGaLK3m9kBabDJNVO8EGvC/rP5WHzPchgMhluvRdWw650CNNRYER0fioXfHd9p7z0REREREfUfPgf5sLAw133xiYmJuHjxIiZOnAgAqKqq6tnqiPqYpmlQbjS1zBbvnDFeudHkdXtBL0KX4Ajsrt72hDCIppa/WrIsw3ZF7bGwfeTzKyguuAGdXsSKpybBYOr2nJVERERERBSEfE4As2fPxv79+zFhwgSsXLkSP/rRj3Dy5El88sknmD17dm/USNQrVJvi0cveHNo1q+J1eynK4DFjvD4xDLohIRDEvusNLz57A/mfXQYALHhwHIYkhffZexMRERERUWDwOci/9tprMJvNAICXXnoJZrMZH3zwAcaMGcMZ6ykgaZoGpa7lMW+O+9kbYK9uBDQvO0gC9PGhnqE9IQySn2eEb6ixYtfbpwENmHBHIsbPSfRrPURERERE5B8+BXlFUVBSUoIpU6YAcAyzf/PNN3ulMKLu0Owq5HKLZ2gva4BqsXvdXgzXu2aLbx4er4sNgSCJXrf3F1VRseOtU2islzEkKRwZa8f6uyQiIiIiIvITn4K8JElYtmwZzpw5g+jo6F4qiahrlHqb52PerjfAXtkIqF662UVAFxvqmoDO9Zi3iFuf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\n"
     },
     "metadata": {}
    }
   ],
   "source": [
    "\n",
    "plot_training_record(training_record, metric_name=\"val_acc\")"
   ]
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "gpuType": "L4",
   "provenance": [],
   "machine_shape": "hm"
  },
  "kernelspec": {
   "name": "python3",
   "language": "python",
   "display_name": "Python 3 (ipykernel)"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "2ea3df86d901466badcf106af54c26cc": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_3a5969939eb24d1c8dacc658435807dd",
       "IPY_MODEL_38d2fd0601594ad08b8f02ec207106e3",
       "IPY_MODEL_d3d5bf6a77434bddb98b9c05509934f0"
      ],
      "layout": "IPY_MODEL_8f6c27d3983a47faa7005e3bbb5a48c8"
     }
    },
    "3a5969939eb24d1c8dacc658435807dd": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_ee5d44cf35b54e70821ef5918ecfdba9",
      "placeholder": "​",
      "style": "IPY_MODEL_75e8270f78654a4b95cb548a74f44a44",
      "value": "100%"
     }
    },
    "38d2fd0601594ad08b8f02ec207106e3": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_3b59e30fe001415191a1e3deefd8b981",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_85d7a753ab6346bc9de29421f01f6bbc",
      "value": 2105
     }
    },
    "d3d5bf6a77434bddb98b9c05509934f0": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_c6a1d35b88684fabb03a014c1c745f71",
      "placeholder": "​",
      "style": "IPY_MODEL_8523ddf108e348cca09798fc435e928a",
      "value": " 2105/2105 [01:50&lt;00:00, 19.52it/s]"
     }
    },
    "8f6c27d3983a47faa7005e3bbb5a48c8": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "ee5d44cf35b54e70821ef5918ecfdba9": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "75e8270f78654a4b95cb548a74f44a44": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "3b59e30fe001415191a1e3deefd8b981": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "85d7a753ab6346bc9de29421f01f6bbc": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "c6a1d35b88684fabb03a014c1c745f71": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "8523ddf108e348cca09798fc435e928a": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "12f02e7e7ea546eba7414033ee095c24": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_1757c80f149c440085028d99adf23df9",
       "IPY_MODEL_11ac12d5c114424fbffe250ad866a52a",
       "IPY_MODEL_11e56ef7c22646f5a432b9e75922a2d7"
      ],
      "layout": "IPY_MODEL_6120ecf5c27d44e7bb622821a2972c44"
     }
    },
    "1757c80f149c440085028d99adf23df9": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_33c631a6ee50451ab75a5ff32ae4d993",
      "placeholder": "​",
      "style": "IPY_MODEL_c9003d2c5f304483ace04debfc178b36",
      "value": "100%"
     }
    },
    "11ac12d5c114424fbffe250ad866a52a": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_a6c89c30639b49c1805b8ee229e71738",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_cf11655a92864b7e9d30677f0ca92088",
      "value": 2105
     }
    },
    "11e56ef7c22646f5a432b9e75922a2d7": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_00c518b55e064b4e94643a1259333527",
      "placeholder": "​",
      "style": "IPY_MODEL_13a23ec4bcc24d51ad323dfe149e74b1",
      "value": " 2105/2105 [01:50&lt;00:00, 20.78it/s]"
     }
    },
    "6120ecf5c27d44e7bb622821a2972c44": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "33c631a6ee50451ab75a5ff32ae4d993": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "c9003d2c5f304483ace04debfc178b36": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "a6c89c30639b49c1805b8ee229e71738": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "cf11655a92864b7e9d30677f0ca92088": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "00c518b55e064b4e94643a1259333527": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "13a23ec4bcc24d51ad323dfe149e74b1": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "353ea85514ce461299259715fde60c97": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_e31ffde7d2e4416ab2f1d9417471e8e3",
       "IPY_MODEL_e8addc30194841acb66ce8222b9f1715",
       "IPY_MODEL_61ee154730324aaca4b26a14578c28b4"
      ],
      "layout": "IPY_MODEL_9e5fb56a67ce43f9afeb8d54abecedb3"
     }
    },
    "e31ffde7d2e4416ab2f1d9417471e8e3": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_1189c4638b3240fbbd56a6b21aa91323",
      "placeholder": "​",
      "style": "IPY_MODEL_15430f52ebcb43a0b0d4eb5c7aa57afa",
      "value": "100%"
     }
    },
    "e8addc30194841acb66ce8222b9f1715": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_396aec71e9a94ab89249814b38851be6",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_2e7bbc6d2bb845e5a312e0e11a8d6821",
      "value": 2105
     }
    },
    "61ee154730324aaca4b26a14578c28b4": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_a9f9f2f8d103427bb56738e9b643b44f",
      "placeholder": "​",
      "style": "IPY_MODEL_c305cb7e524a4936acb0cd10f5d400a9",
      "value": " 2105/2105 [01:51&lt;00:00, 20.00it/s]"
     }
    },
    "9e5fb56a67ce43f9afeb8d54abecedb3": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "1189c4638b3240fbbd56a6b21aa91323": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "15430f52ebcb43a0b0d4eb5c7aa57afa": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "396aec71e9a94ab89249814b38851be6": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "2e7bbc6d2bb845e5a312e0e11a8d6821": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "a9f9f2f8d103427bb56738e9b643b44f": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "c305cb7e524a4936acb0cd10f5d400a9": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "f5e43a044fa74c47bd26c120f9b712f3": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_a4d153922771402ca7234ff8411113ce",
       "IPY_MODEL_70e1de590e8444a187f81b92f19b1d90",
       "IPY_MODEL_e6840f7da5824ba29646e2e27d45dbb1"
      ],
      "layout": "IPY_MODEL_5d126435cbe04c259e25d4d2752f3358"
     }
    },
    "a4d153922771402ca7234ff8411113ce": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_362df91457d348109b87ea1932731c0e",
      "placeholder": "​",
      "style": "IPY_MODEL_93d8045c6bb3419faa2f4dfc2cc23e46",
      "value": "100%"
     }
    },
    "70e1de590e8444a187f81b92f19b1d90": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_59da5456dc0547ac81e715895eb12b68",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_15e31c705c704ea58155ed4448fd2d67",
      "value": 2105
     }
    },
    "e6840f7da5824ba29646e2e27d45dbb1": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_4a88e605478744d2ac044a349b8aa096",
      "placeholder": "​",
      "style": "IPY_MODEL_6427ca38a8f14f8bb8169b30b1dc69cd",
      "value": " 2105/2105 [01:50&lt;00:00, 19.49it/s]"
     }
    },
    "5d126435cbe04c259e25d4d2752f3358": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "362df91457d348109b87ea1932731c0e": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "93d8045c6bb3419faa2f4dfc2cc23e46": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "59da5456dc0547ac81e715895eb12b68": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "15e31c705c704ea58155ed4448fd2d67": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "4a88e605478744d2ac044a349b8aa096": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "6427ca38a8f14f8bb8169b30b1dc69cd": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "bf210ddb040842a586b6305dd04a13ab": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_ab14da846d6a4cecb59d97151ae8d319",
       "IPY_MODEL_299e7e2e48a543a097ff022757af4319",
       "IPY_MODEL_6c7ae1c0823c498f9cc192a72fc9e443"
      ],
      "layout": "IPY_MODEL_4cad88bdc5dc4d08917d0c3cf339a028"
     }
    },
    "ab14da846d6a4cecb59d97151ae8d319": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_9e61a9c9aa4b47fe968f8efefa25713d",
      "placeholder": "​",
      "style": "IPY_MODEL_1ce5943ed7754a34b2fb3d9e875179b8",
      "value": "100%"
     }
    },
    "299e7e2e48a543a097ff022757af4319": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_b90d3e6d68cb4f47b0c6b1bef5e1ad47",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_55586b59d3e647ae908958c9d9fd25dc",
      "value": 2105
     }
    },
    "6c7ae1c0823c498f9cc192a72fc9e443": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_ea02d54e0b954af5b8bb6c56ef3bd503",
      "placeholder": "​",
      "style": "IPY_MODEL_a421bf030d3b40e5b70418ef223ad97a",
      "value": " 2105/2105 [01:51&lt;00:00, 20.23it/s]"
     }
    },
    "4cad88bdc5dc4d08917d0c3cf339a028": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "9e61a9c9aa4b47fe968f8efefa25713d": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "1ce5943ed7754a34b2fb3d9e875179b8": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "b90d3e6d68cb4f47b0c6b1bef5e1ad47": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "55586b59d3e647ae908958c9d9fd25dc": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "ea02d54e0b954af5b8bb6c56ef3bd503": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a421bf030d3b40e5b70418ef223ad97a": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "0b340b2310eb477db6f4b8b6893e9c9f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_c36a158ccde64f3281c435a5a28f8997",
       "IPY_MODEL_22126f42da1c40cca855ab7b14ed9f17",
       "IPY_MODEL_41e42f855bb9492baf6f91b876473436"
      ],
      "layout": "IPY_MODEL_daf1e9f0ace643b28ec51aa3f67914cd"
     }
    },
    "c36a158ccde64f3281c435a5a28f8997": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_d060856e36074e0985549f12be53fec0",
      "placeholder": "​",
      "style": "IPY_MODEL_f5de7127c6af43f7aee020e11fc5be7e",
      "value": "  3%"
     }
    },
    "22126f42da1c40cca855ab7b14ed9f17": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "danger",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_6cc38298fbc248b0aaf32d12cbb6ae59",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_58c5d5d727fa44ba87011cf7cab0b895",
      "value": 53
     }
    },
    "41e42f855bb9492baf6f91b876473436": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_b6d43e1c9289433abfa944c4bb6e3c0a",
      "placeholder": "​",
      "style": "IPY_MODEL_2e773b2d022c46128d59d3b37a5e76cb",
      "value": " 53/2105 [00:06&lt;03:01, 11.32it/s]"
     }
    },
    "daf1e9f0ace643b28ec51aa3f67914cd": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "d060856e36074e0985549f12be53fec0": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f5de7127c6af43f7aee020e11fc5be7e": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "6cc38298fbc248b0aaf32d12cbb6ae59": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "58c5d5d727fa44ba87011cf7cab0b895": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "b6d43e1c9289433abfa944c4bb6e3c0a": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "2e773b2d022c46128d59d3b37a5e76cb": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "5c316b59267849a98e3eb3b1c7d2cfc9": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_9b39821a816e4a518478da662273c3ec",
       "IPY_MODEL_19237ecab69f413ebcc7abf213d4a444",
       "IPY_MODEL_b13a3b59b94e4ea094bd763a943a3868"
      ],
      "layout": "IPY_MODEL_7499d13529c9491eb0903939448231e0"
     }
    },
    "9b39821a816e4a518478da662273c3ec": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_13a3932bcde94c80a57731a4b899fde4",
      "placeholder": "​",
      "style": "IPY_MODEL_875d1b1097a44795b8a7f006a95b7a2a",
      "value": "model.safetensors: 100%"
     }
    },
    "19237ecab69f413ebcc7abf213d4a444": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_1fc4b557389d41bd8754778f02687446",
      "max": 440449768,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_3c199c618f914111b9ec644697557846",
      "value": 440449768
     }
    },
    "b13a3b59b94e4ea094bd763a943a3868": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_394f814d0b984e44963f5a42a513beac",
      "placeholder": "​",
      "style": "IPY_MODEL_74d8a15d788141348f1a05df71dc6330",
      "value": " 440M/440M [00:00&lt;00:00, 484MB/s]"
     }
    },
    "7499d13529c9491eb0903939448231e0": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "13a3932bcde94c80a57731a4b899fde4": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "875d1b1097a44795b8a7f006a95b7a2a": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "1fc4b557389d41bd8754778f02687446": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3c199c618f914111b9ec644697557846": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "394f814d0b984e44963f5a42a513beac": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "74d8a15d788141348f1a05df71dc6330": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "46d92dff466c45de9034737a8f827240": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_29b0e48e7faa49e2847b1dc5bac8191b",
       "IPY_MODEL_bde8ed51d8e04b23942a52a85e320736",
       "IPY_MODEL_beb4e07dcad147f4b683f43fe7ce7b3d"
      ],
      "layout": "IPY_MODEL_56161645ad2d4b568f36f30ba9227a47"
     }
    },
    "29b0e48e7faa49e2847b1dc5bac8191b": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_3dda788b53c94736bf322f9d5eb27fc4",
      "placeholder": "​",
      "style": "IPY_MODEL_ef9f277fe24441c3ab18acb38b70a0cc",
      "value": "100%"
     }
    },
    "bde8ed51d8e04b23942a52a85e320736": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_ee55b41c575b41eda5389026fc19e70a",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_302424269c5d4a7cbb870e68396e68e4",
      "value": 2105
     }
    },
    "beb4e07dcad147f4b683f43fe7ce7b3d": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_4f714c70ca0948bbac5640a114f242ea",
      "placeholder": "​",
      "style": "IPY_MODEL_0f4dce6652ee4a92b181f50eb5c52c13",
      "value": " 2105/2105 [03:21&lt;00:00, 11.17it/s]"
     }
    },
    "56161645ad2d4b568f36f30ba9227a47": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3dda788b53c94736bf322f9d5eb27fc4": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "ef9f277fe24441c3ab18acb38b70a0cc": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "ee55b41c575b41eda5389026fc19e70a": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "302424269c5d4a7cbb870e68396e68e4": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "4f714c70ca0948bbac5640a114f242ea": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "0f4dce6652ee4a92b181f50eb5c52c13": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "ead9403b81354fe2a9e31be116435b24": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_ea96bcb8405e4db6a110130977c2b75e",
       "IPY_MODEL_8a8804c357af47199c7d4ce9064a6c42",
       "IPY_MODEL_afff980167664a4fb2eef5841c2266ea"
      ],
      "layout": "IPY_MODEL_7864c3e24840470db136b44cf31a8149"
     }
    },
    "ea96bcb8405e4db6a110130977c2b75e": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_b69e0af046524562998d10d9f5ebfd7c",
      "placeholder": "​",
      "style": "IPY_MODEL_1eaa2f53d3c5410a885bb0e89567ea6d",
      "value": "100%"
     }
    },
    "8a8804c357af47199c7d4ce9064a6c42": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_e4e3f3d51505427fa5ca17a31fb88620",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_c524ecf7cbff40edaa41a949f8297c02",
      "value": 2105
     }
    },
    "afff980167664a4fb2eef5841c2266ea": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_f225d7d141204cfeafe716e651877ebd",
      "placeholder": "​",
      "style": "IPY_MODEL_4bb95f8c757743a9a2afb4da77504cb0",
      "value": " 2105/2105 [03:23&lt;00:00, 10.10it/s]"
     }
    },
    "7864c3e24840470db136b44cf31a8149": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "b69e0af046524562998d10d9f5ebfd7c": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "1eaa2f53d3c5410a885bb0e89567ea6d": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "e4e3f3d51505427fa5ca17a31fb88620": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "c524ecf7cbff40edaa41a949f8297c02": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "f225d7d141204cfeafe716e651877ebd": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "4bb95f8c757743a9a2afb4da77504cb0": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "037d51c434f0413cb874b3f33ba3a19c": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_6d72079fe41f4a7383d49b6c39d18ef3",
       "IPY_MODEL_14bdf3461e294d9389cf0a4f13184540",
       "IPY_MODEL_c219985fca034971a928a26a44b6731d"
      ],
      "layout": "IPY_MODEL_3828d9d9da104e028ac560a22123cdca"
     }
    },
    "6d72079fe41f4a7383d49b6c39d18ef3": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_cbe656767578475eb2396730b2843f9b",
      "placeholder": "​",
      "style": "IPY_MODEL_0c333073bf764ed5a7e73c59e69ae097",
      "value": "100%"
     }
    },
    "14bdf3461e294d9389cf0a4f13184540": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_ba7984e852504709971152426b2655a1",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_42a23a8bb2974fc98b396c97592e44c0",
      "value": 2105
     }
    },
    "c219985fca034971a928a26a44b6731d": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_c7b90cc4090449f69f88555a9e8f458e",
      "placeholder": "​",
      "style": "IPY_MODEL_af9cc8ed41f14934803e1ee78ef85cd3",
      "value": " 2105/2105 [03:23&lt;00:00, 10.80it/s]"
     }
    },
    "3828d9d9da104e028ac560a22123cdca": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "cbe656767578475eb2396730b2843f9b": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "0c333073bf764ed5a7e73c59e69ae097": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "ba7984e852504709971152426b2655a1": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "42a23a8bb2974fc98b396c97592e44c0": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "c7b90cc4090449f69f88555a9e8f458e": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "af9cc8ed41f14934803e1ee78ef85cd3": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "e1401e84600043a28408ccb253f53c48": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_d5591b1f7cbe421987a53a81b28972c6",
       "IPY_MODEL_1997c51636324351858647bdbbcf78e5",
       "IPY_MODEL_dbe712b22f5b4c91853ebbeb74e0267c"
      ],
      "layout": "IPY_MODEL_a9f9b2bcb03e43d398a32d0f9b8c5cb5"
     }
    },
    "d5591b1f7cbe421987a53a81b28972c6": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_3539cfc261f64aa199fc053ae3fc58d2",
      "placeholder": "​",
      "style": "IPY_MODEL_f51cf3ea24834c1aa2ea5c143c8329af",
      "value": "100%"
     }
    },
    "1997c51636324351858647bdbbcf78e5": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_9f16efb8a12c48feb9ba53dcb82f7fda",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_aaea58f4fc704738a2f9d1ed150ad46c",
      "value": 2105
     }
    },
    "dbe712b22f5b4c91853ebbeb74e0267c": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_d747304251ab4d8fb8cf61258b9a26be",
      "placeholder": "​",
      "style": "IPY_MODEL_55c53a92cbd949008af193f54f1510bd",
      "value": " 2105/2105 [03:23&lt;00:00, 11.10it/s]"
     }
    },
    "a9f9b2bcb03e43d398a32d0f9b8c5cb5": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3539cfc261f64aa199fc053ae3fc58d2": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f51cf3ea24834c1aa2ea5c143c8329af": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "9f16efb8a12c48feb9ba53dcb82f7fda": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "aaea58f4fc704738a2f9d1ed150ad46c": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "d747304251ab4d8fb8cf61258b9a26be": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "55c53a92cbd949008af193f54f1510bd": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "951b1a219633481bad0ecbe86343f3c7": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_f35eb19513074b12879afb69a807215b",
       "IPY_MODEL_b7e7ce3eb4234a7da22c15c0b51819f4",
       "IPY_MODEL_aca9f14f5ae44b058c1b62b79791c51e"
      ],
      "layout": "IPY_MODEL_257c28fb90124ffea20e5b209f03c495"
     }
    },
    "f35eb19513074b12879afb69a807215b": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_36cbbbb92f364447a06bb4dae9061930",
      "placeholder": "​",
      "style": "IPY_MODEL_cb4dc88ee0fe47c7af8e0cda3e93b1c5",
      "value": "100%"
     }
    },
    "b7e7ce3eb4234a7da22c15c0b51819f4": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_fda088654cf4421789bbff5b06d7e818",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_109468b138d7436c89d6eef09d695834",
      "value": 2105
     }
    },
    "aca9f14f5ae44b058c1b62b79791c51e": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_fefadb95a32e41818a0f28531d16aa72",
      "placeholder": "​",
      "style": "IPY_MODEL_a0d12106bd36464cb84d5c4fc5657eb0",
      "value": " 2105/2105 [03:23&lt;00:00, 11.12it/s]"
     }
    },
    "257c28fb90124ffea20e5b209f03c495": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "36cbbbb92f364447a06bb4dae9061930": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "cb4dc88ee0fe47c7af8e0cda3e93b1c5": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "fda088654cf4421789bbff5b06d7e818": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "109468b138d7436c89d6eef09d695834": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "fefadb95a32e41818a0f28531d16aa72": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a0d12106bd36464cb84d5c4fc5657eb0": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "6da923bc22354063867b686e5e9de1ce": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_47f4ea93c4924d85b06f0fcf21820dcb",
       "IPY_MODEL_39a9fabaf3954f0dadfb397d60099fa7",
       "IPY_MODEL_4853ac2b586a48fea2c6cb4de96f8b3f"
      ],
      "layout": "IPY_MODEL_62e8939f402e4b1184913820e8e01fb8"
     }
    },
    "47f4ea93c4924d85b06f0fcf21820dcb": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_b8f2918237d74cf2b6af203f582316cb",
      "placeholder": "​",
      "style": "IPY_MODEL_fa3452f710a84553acce2638fc5229bc",
      "value": "tokenizer_config.json: 100%"
     }
    },
    "39a9fabaf3954f0dadfb397d60099fa7": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_5db1c249922c4ec790067cf28f1b7573",
      "max": 48,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_8364cc2f0ebe4ada809102dfe6aaac43",
      "value": 48
     }
    },
    "4853ac2b586a48fea2c6cb4de96f8b3f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_94201c8ea5d34c7493fdf8ac42c99e72",
      "placeholder": "​",
      "style": "IPY_MODEL_77d65fdb5ae04a0fa4b8c20026816d4d",
      "value": " 48.0/48.0 [00:00&lt;00:00, 3.63kB/s]"
     }
    },
    "62e8939f402e4b1184913820e8e01fb8": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "b8f2918237d74cf2b6af203f582316cb": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "fa3452f710a84553acce2638fc5229bc": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "5db1c249922c4ec790067cf28f1b7573": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "8364cc2f0ebe4ada809102dfe6aaac43": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "94201c8ea5d34c7493fdf8ac42c99e72": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "77d65fdb5ae04a0fa4b8c20026816d4d": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "c4e7491bd5f242369159f6c05b6124c9": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_e57a75af9eae4a1faec75cb165e66ce7",
       "IPY_MODEL_e72cd88241e54b659b9b112bb7267157",
       "IPY_MODEL_995e40ac781f48fd97758028ab1d0fa2"
      ],
      "layout": "IPY_MODEL_4ed85ab9fcbe42f29039fe21f0d9582a"
     }
    },
    "e57a75af9eae4a1faec75cb165e66ce7": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_42d3e412f0024ec686dfe527564a9e2b",
      "placeholder": "​",
      "style": "IPY_MODEL_65f322fb9416408786581fe1617054bd",
      "value": "config.json: 100%"
     }
    },
    "e72cd88241e54b659b9b112bb7267157": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_c3ccef57950940e8aa5677a2c5384704",
      "max": 570,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_8859695d75c2480699d0b52decb11494",
      "value": 570
     }
    },
    "995e40ac781f48fd97758028ab1d0fa2": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_7305a2cdf0c54c62b02d43c1eb1e0187",
      "placeholder": "​",
      "style": "IPY_MODEL_29527d3cd5654d0d8ca7fc2ff295ca00",
      "value": " 570/570 [00:00&lt;00:00, 45.5kB/s]"
     }
    },
    "4ed85ab9fcbe42f29039fe21f0d9582a": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "42d3e412f0024ec686dfe527564a9e2b": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "65f322fb9416408786581fe1617054bd": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "c3ccef57950940e8aa5677a2c5384704": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "8859695d75c2480699d0b52decb11494": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "7305a2cdf0c54c62b02d43c1eb1e0187": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "29527d3cd5654d0d8ca7fc2ff295ca00": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "977648f8658d404e92a58a8d5eb8d3c2": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_8ec1844c67c14ec4850d4d0f16fffe97",
       "IPY_MODEL_73adea0657fd471eb404bd8e6454ff0f",
       "IPY_MODEL_b718ee0e74fd410eb47d83df060b24ca"
      ],
      "layout": "IPY_MODEL_23d321c1013c4f639a4dd3319c30f1cf"
     }
    },
    "8ec1844c67c14ec4850d4d0f16fffe97": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_70d435bcab094594b06594e46f092e13",
      "placeholder": "​",
      "style": "IPY_MODEL_de30962c71ea4f9b80c84b10d0f1205d",
      "value": "vocab.txt: 100%"
     }
    },
    "73adea0657fd471eb404bd8e6454ff0f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_e595453f5a83499bb3e4fbcf1a2d3452",
      "max": 231508,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_a2a877d3974c4fcab1a0fad5c7516c06",
      "value": 231508
     }
    },
    "b718ee0e74fd410eb47d83df060b24ca": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_2cc5bce3467c4befa3feac44e1cdcb00",
      "placeholder": "​",
      "style": "IPY_MODEL_fa95e6b376d3453fbc7e2f054a32d2ea",
      "value": " 232k/232k [00:00&lt;00:00, 1.69MB/s]"
     }
    },
    "23d321c1013c4f639a4dd3319c30f1cf": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "70d435bcab094594b06594e46f092e13": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "de30962c71ea4f9b80c84b10d0f1205d": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "e595453f5a83499bb3e4fbcf1a2d3452": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a2a877d3974c4fcab1a0fad5c7516c06": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "2cc5bce3467c4befa3feac44e1cdcb00": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "fa95e6b376d3453fbc7e2f054a32d2ea": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "92a7065c68d2435798841b50c4d17153": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_b9db58a2a9914b9485db674fb93b2ded",
       "IPY_MODEL_c862fe426cca4ba3a8c13f40f5c0f6b8",
       "IPY_MODEL_ef0583f2d2464f12b3d21c677a5265f6"
      ],
      "layout": "IPY_MODEL_69f1014e5e794d6c957a9f48e53d7ed3"
     }
    },
    "b9db58a2a9914b9485db674fb93b2ded": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_9acbb5228e224cd8b9b2b3dd9253d353",
      "placeholder": "​",
      "style": "IPY_MODEL_5938da630d5b44038a687096d5d082c7",
      "value": "tokenizer.json: 100%"
     }
    },
    "c862fe426cca4ba3a8c13f40f5c0f6b8": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_68fc0bfa9d7241bc9695bceb556bb23f",
      "max": 466062,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_e46ab6f1b04d452c85a5e530a3dda9d1",
      "value": 466062
     }
    },
    "ef0583f2d2464f12b3d21c677a5265f6": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_0c2c57ac0c014e56b9582ab5e0a8914c",
      "placeholder": "​",
      "style": "IPY_MODEL_7b78622f148443579f4f7d1984f0b056",
      "value": " 466k/466k [00:00&lt;00:00, 2.32MB/s]"
     }
    },
    "69f1014e5e794d6c957a9f48e53d7ed3": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "9acbb5228e224cd8b9b2b3dd9253d353": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "5938da630d5b44038a687096d5d082c7": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "68fc0bfa9d7241bc9695bceb556bb23f": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "e46ab6f1b04d452c85a5e530a3dda9d1": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "0c2c57ac0c014e56b9582ab5e0a8914c": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "7b78622f148443579f4f7d1984f0b056": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "07b75399a9a04928a42c39eae90179ab": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_ecf7b9954d5942e39fc20fff9556d242",
       "IPY_MODEL_b1766273dcbb4617887e2ccb12a35ceb",
       "IPY_MODEL_9d5a56bee0ed4be484cb5013cd359892"
      ],
      "layout": "IPY_MODEL_411e77b79a2e4382b90132dd6d6cfe86"
     }
    },
    "ecf7b9954d5942e39fc20fff9556d242": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_89ae9b1d099c4beb912fa9d10f646a93",
      "placeholder": "​",
      "style": "IPY_MODEL_50dd8b101f4643e98b637eeadf15c3d0",
      "value": "Generating train split: "
     }
    },
    "b1766273dcbb4617887e2ccb12a35ceb": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_9808250c9b09421984b43bc54fedce94",
      "max": 1,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_43f72df864cf433bb154d8a0acda9b51",
      "value": 1
     }
    },
    "9d5a56bee0ed4be484cb5013cd359892": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_644dc9763b224d998d402ecde8718641",
      "placeholder": "​",
      "style": "IPY_MODEL_cfc4e7802f31421ba0e1e33af16ac966",
      "value": " 67349/0 [00:00&lt;00:00, 73412.09 examples/s]"
     }
    },
    "411e77b79a2e4382b90132dd6d6cfe86": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "89ae9b1d099c4beb912fa9d10f646a93": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "50dd8b101f4643e98b637eeadf15c3d0": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "9808250c9b09421984b43bc54fedce94": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": "20px"
     }
    },
    "43f72df864cf433bb154d8a0acda9b51": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "644dc9763b224d998d402ecde8718641": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "cfc4e7802f31421ba0e1e33af16ac966": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "0a0ee09287334452acc462dc5b481091": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_7efd96d2b1ad4c7a9fc8f4c69b180d93",
       "IPY_MODEL_ec7e6fdba61343788788035a7838e92f",
       "IPY_MODEL_5200c8edfd7b4f598570d9de39075b80"
      ],
      "layout": "IPY_MODEL_11ae8f29fe80400d9f1887a933873d44"
     }
    },
    "7efd96d2b1ad4c7a9fc8f4c69b180d93": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_a236f0c825674f20a3cdf5c1563786bd",
      "placeholder": "​",
      "style": "IPY_MODEL_d4462044ac8440ee8c5c9fa1b1479da1",
      "value": "Generating validation split: "
     }
    },
    "ec7e6fdba61343788788035a7838e92f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_6478946a2d534aeea49eade2c84a0d67",
      "max": 1,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_d8ea5b62a240416394ece8cfe02625d0",
      "value": 1
     }
    },
    "5200c8edfd7b4f598570d9de39075b80": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_3a47763fb9c04498b3b772329df0f734",
      "placeholder": "​",
      "style": "IPY_MODEL_6b8d2a2ec8b04d7bb0df960ced634029",
      "value": " 872/0 [00:00&lt;00:00, 44407.88 examples/s]"
     }
    },
    "11ae8f29fe80400d9f1887a933873d44": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a236f0c825674f20a3cdf5c1563786bd": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "d4462044ac8440ee8c5c9fa1b1479da1": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "6478946a2d534aeea49eade2c84a0d67": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": "20px"
     }
    },
    "d8ea5b62a240416394ece8cfe02625d0": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "3a47763fb9c04498b3b772329df0f734": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "6b8d2a2ec8b04d7bb0df960ced634029": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "1af5a8f7087f4cadac8c4742448cb754": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_4924af90b4f849a29324a796d3ad5e26",
       "IPY_MODEL_56ef56c89b824c089d5d6a95edd8053c",
       "IPY_MODEL_24e24adc878143cbada3b3642323cd49"
      ],
      "layout": "IPY_MODEL_73d346a51bbe4607b7bad1f00e9e8e9d"
     }
    },
    "4924af90b4f849a29324a796d3ad5e26": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_dcc091b28c9042dc8f61521d3d5d7645",
      "placeholder": "​",
      "style": "IPY_MODEL_2c244f94f9c74a9da7705f2ec06e3a8e",
      "value": "100%"
     }
    },
    "56ef56c89b824c089d5d6a95edd8053c": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_354ab5429c694eb98041f97bcef7acae",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_3333e11e07734fe185ebc48f107d9358",
      "value": 2105
     }
    },
    "24e24adc878143cbada3b3642323cd49": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_a5fc28f738a74b78a7144c2be0f0d43e",
      "placeholder": "​",
      "style": "IPY_MODEL_da07dd9b33fc4c169b632783a4d278e9",
      "value": " 2105/2105 [01:13&lt;00:00, 29.49it/s]"
     }
    },
    "73d346a51bbe4607b7bad1f00e9e8e9d": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "dcc091b28c9042dc8f61521d3d5d7645": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "2c244f94f9c74a9da7705f2ec06e3a8e": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "354ab5429c694eb98041f97bcef7acae": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3333e11e07734fe185ebc48f107d9358": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "a5fc28f738a74b78a7144c2be0f0d43e": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "da07dd9b33fc4c169b632783a4d278e9": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "b9a956cfa97143338af8a9b80bbcc293": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_b2fde8db6cb4482bac9a0adb5d7d5098",
       "IPY_MODEL_db000bf338804d2a85b1e1b94e2d0302",
       "IPY_MODEL_9f3cbfb091114c4d812492c869e023f7"
      ],
      "layout": "IPY_MODEL_2798ca6e18ad489b9566154f0e92eb55"
     }
    },
    "b2fde8db6cb4482bac9a0adb5d7d5098": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_95e687351f934ce8b7ec7137e8e41627",
      "placeholder": "​",
      "style": "IPY_MODEL_0964d6448ae047ba93713a50b045ee62",
      "value": "100%"
     }
    },
    "db000bf338804d2a85b1e1b94e2d0302": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_0aa540f38c0d450ab7e97e950876dfef",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_e8aebc853ad3437db99de7988ac5f957",
      "value": 2105
     }
    },
    "9f3cbfb091114c4d812492c869e023f7": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_b10bdb047e08422f817574433e430848",
      "placeholder": "​",
      "style": "IPY_MODEL_d1288c69593c457c9a3957f7d081a5e1",
      "value": " 2105/2105 [01:13&lt;00:00, 27.25it/s]"
     }
    },
    "2798ca6e18ad489b9566154f0e92eb55": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "95e687351f934ce8b7ec7137e8e41627": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "0964d6448ae047ba93713a50b045ee62": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "0aa540f38c0d450ab7e97e950876dfef": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "e8aebc853ad3437db99de7988ac5f957": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "b10bdb047e08422f817574433e430848": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "d1288c69593c457c9a3957f7d081a5e1": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "2c057dbf62dd4a72ac815abf0bd969f8": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_3bb4f188e63945eeb7dcd70775ee824e",
       "IPY_MODEL_0b2238fa6d6141c2812d89059aa81aee",
       "IPY_MODEL_aa5d88fe9f194a648634e711b0481f16"
      ],
      "layout": "IPY_MODEL_c3db3db035f94ba2b65905af78fbce0c"
     }
    },
    "3bb4f188e63945eeb7dcd70775ee824e": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_ead5313927894891b1380ec64bf934ad",
      "placeholder": "​",
      "style": "IPY_MODEL_478db626e41745e5927b6f457f7a3c33",
      "value": "100%"
     }
    },
    "0b2238fa6d6141c2812d89059aa81aee": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_8f69d9b17e19409ab7270b3479ec5959",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_3d7f31d3f93e472780c93e694a120009",
      "value": 2105
     }
    },
    "aa5d88fe9f194a648634e711b0481f16": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_d4db3d008f5343d396faad6b5347a156",
      "placeholder": "​",
      "style": "IPY_MODEL_9f48c04f7f64470eb075d65dc8504069",
      "value": " 2105/2105 [01:13&lt;00:00, 29.34it/s]"
     }
    },
    "c3db3db035f94ba2b65905af78fbce0c": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "ead5313927894891b1380ec64bf934ad": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "478db626e41745e5927b6f457f7a3c33": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "8f69d9b17e19409ab7270b3479ec5959": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3d7f31d3f93e472780c93e694a120009": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "d4db3d008f5343d396faad6b5347a156": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "9f48c04f7f64470eb075d65dc8504069": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "13ec8c09ad43477faeb0fdb48be77e4f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_89a0bba9b10b4a269552e4ab03854f6d",
       "IPY_MODEL_221b230283d546288628c41c773f111d",
       "IPY_MODEL_facb5fd3e31c4e219ce3a560abc71e4f"
      ],
      "layout": "IPY_MODEL_7cddc8d69d744212954f756a6fc8f6b3"
     }
    },
    "89a0bba9b10b4a269552e4ab03854f6d": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_2e72e0d4d8c04f0c95f87f8d270374ca",
      "placeholder": "​",
      "style": "IPY_MODEL_b4c266cc96254ba4bd4ae9382456d312",
      "value": "100%"
     }
    },
    "221b230283d546288628c41c773f111d": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_494478349bb6477cb17faed29a6c5a09",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_08f279faff004eba8d01ba37b2ee07f3",
      "value": 2105
     }
    },
    "facb5fd3e31c4e219ce3a560abc71e4f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_28a0c952f92f4a7ba1a1e5d39155e877",
      "placeholder": "​",
      "style": "IPY_MODEL_75162cb3d3064c1084ef555f3ec39fed",
      "value": " 2105/2105 [01:13&lt;00:00, 27.27it/s]"
     }
    },
    "7cddc8d69d744212954f756a6fc8f6b3": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "2e72e0d4d8c04f0c95f87f8d270374ca": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "b4c266cc96254ba4bd4ae9382456d312": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "494478349bb6477cb17faed29a6c5a09": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "08f279faff004eba8d01ba37b2ee07f3": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "28a0c952f92f4a7ba1a1e5d39155e877": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "75162cb3d3064c1084ef555f3ec39fed": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "aec52c56d30446af966dceab7f242436": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_aaff9125f0234b7f8c46e55c1c035fda",
       "IPY_MODEL_b42ac81f0d064e0aa20129730ca12793",
       "IPY_MODEL_c4433855b2f4416e9086e8a1ab19be8a"
      ],
      "layout": "IPY_MODEL_a81ca5b63f2a40969482b26cf29f78b6"
     }
    },
    "aaff9125f0234b7f8c46e55c1c035fda": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_0cdaad7dd2da4df1991bbfbdda4df8e5",
      "placeholder": "​",
      "style": "IPY_MODEL_00baf8cd88b34a8c869741ed46e3449a",
      "value": "100%"
     }
    },
    "b42ac81f0d064e0aa20129730ca12793": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_bad9f83e099b43aab34ec8d38dc41620",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_7c7fd113b3304f91ac29694b28be04b2",
      "value": 2105
     }
    },
    "c4433855b2f4416e9086e8a1ab19be8a": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_e0fe620f3fd043afbeadcfe05ba38074",
      "placeholder": "​",
      "style": "IPY_MODEL_556217324a9d4e07abdda702b46db30d",
      "value": " 2105/2105 [01:13&lt;00:00, 27.80it/s]"
     }
    },
    "a81ca5b63f2a40969482b26cf29f78b6": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "0cdaad7dd2da4df1991bbfbdda4df8e5": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "00baf8cd88b34a8c869741ed46e3449a": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "bad9f83e099b43aab34ec8d38dc41620": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "7c7fd113b3304f91ac29694b28be04b2": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "e0fe620f3fd043afbeadcfe05ba38074": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "556217324a9d4e07abdda702b46db30d": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "842c28163e874dceb9bbce33d6cf05cd": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_04da1acb748e4e16882d37fa1251bf46",
       "IPY_MODEL_9edc27fb5af74c329806a4956ade9cfe",
       "IPY_MODEL_14852b1db6d54f758fb6e69a5811dbfa"
      ],
      "layout": "IPY_MODEL_3012756f808948c6a518cf12f12498d5"
     }
    },
    "04da1acb748e4e16882d37fa1251bf46": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_c2614263799849acb00a052c67d45e70",
      "placeholder": "​",
      "style": "IPY_MODEL_436d2f7998ac489b81f905e934898f79",
      "value": "100%"
     }
    },
    "9edc27fb5af74c329806a4956ade9cfe": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_b72eaa2b67bf4ef4a3503562d060ac81",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_da82514d01c344309e15262b01122039",
      "value": 2105
     }
    },
    "14852b1db6d54f758fb6e69a5811dbfa": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_f6047660fd0e4a0a97ae9e94338bcc27",
      "placeholder": "​",
      "style": "IPY_MODEL_f4a354f58725406ab46f82c82662ceca",
      "value": " 2105/2105 [04:19&lt;00:00,  8.36it/s]"
     }
    },
    "3012756f808948c6a518cf12f12498d5": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "c2614263799849acb00a052c67d45e70": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "436d2f7998ac489b81f905e934898f79": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "b72eaa2b67bf4ef4a3503562d060ac81": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "da82514d01c344309e15262b01122039": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "f6047660fd0e4a0a97ae9e94338bcc27": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f4a354f58725406ab46f82c82662ceca": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "3f1507b47b7348efa16cd5ab1534f7a5": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_8155d2eeb7db4cde9cacf98236961458",
       "IPY_MODEL_d4db1865ed894d7294f60c2c46efbecc",
       "IPY_MODEL_3c6b0ab616604b38b8adb133a0030aee"
      ],
      "layout": "IPY_MODEL_743a6d5dffe544c587b798655bf2ea3e"
     }
    },
    "8155d2eeb7db4cde9cacf98236961458": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_ee798c1c1f3344c4878419f558d6fb22",
      "placeholder": "​",
      "style": "IPY_MODEL_6e97ea60559d461aa2ccd0d3b9eba680",
      "value": "100%"
     }
    },
    "d4db1865ed894d7294f60c2c46efbecc": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_da2e6c783d2a4888ac1e02391073b445",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_c3d789d1eb744705a339d071491bfeeb",
      "value": 2105
     }
    },
    "3c6b0ab616604b38b8adb133a0030aee": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_32e8ae12e296418da3ec13fe5032e761",
      "placeholder": "​",
      "style": "IPY_MODEL_09c192f3ace34058afbe3336206b5045",
      "value": " 2105/2105 [04:18&lt;00:00,  8.65it/s]"
     }
    },
    "743a6d5dffe544c587b798655bf2ea3e": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "ee798c1c1f3344c4878419f558d6fb22": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "6e97ea60559d461aa2ccd0d3b9eba680": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "da2e6c783d2a4888ac1e02391073b445": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "c3d789d1eb744705a339d071491bfeeb": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "32e8ae12e296418da3ec13fe5032e761": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "09c192f3ace34058afbe3336206b5045": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "402678946c5d456083782e2ca36d42a1": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_0c0e10c48d414fbc8a5de4e509a38edb",
       "IPY_MODEL_be0c28446ced44e79c226aa6361d40ad",
       "IPY_MODEL_ddc27da96ee0403fb1262374bb683f2f"
      ],
      "layout": "IPY_MODEL_cd6b99ecd7fd4ca4a196d6b0ce96a7f1"
     }
    },
    "0c0e10c48d414fbc8a5de4e509a38edb": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_a448a864cc5147609738b9df5c715838",
      "placeholder": "​",
      "style": "IPY_MODEL_6eff4cee814245f582c387abc6f26981",
      "value": " 80%"
     }
    },
    "be0c28446ced44e79c226aa6361d40ad": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_1f63a35495074a7bbadcdc2ad2411461",
      "max": 2105,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_86d27e67d82a453cac4a14ce4bc77c84",
      "value": 1690
     }
    },
    "ddc27da96ee0403fb1262374bb683f2f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_2b1fce4a57b445fda6eb341a16deaf54",
      "placeholder": "​",
      "style": "IPY_MODEL_f5586592671d49af8f502c3a286892b6",
      "value": " 1690/2105 [03:27&lt;00:54,  7.59it/s]"
     }
    },
    "cd6b99ecd7fd4ca4a196d6b0ce96a7f1": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a448a864cc5147609738b9df5c715838": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "6eff4cee814245f582c387abc6f26981": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "1f63a35495074a7bbadcdc2ad2411461": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "86d27e67d82a453cac4a14ce4bc77c84": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "2b1fce4a57b445fda6eb341a16deaf54": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f5586592671d49af8f502c3a286892b6": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
